22

デバッグしようとすると、この行で「長さ」の null エラーが発生します。本の指示どおりに書かれているので、なぜエラーが発生するのかわかりませんか? ありがとう、=)

if (capital.length < 1) {

(ここに要求された完全なコードがあります..申し訳ありません)

<script type="text/javascript">
var capital = window.prompt("What is the capital of Missouri?","")

if (capital.length < 1) {
    document.getElementById("firstdiv").innerHTML="Sorry you don't feel like playing.<br /> The Capital of Missouri is Jefferson City.";
}
else {
    if (!window.confirm("Is that your final answer?")){ return true;

        document.getElementById("firstdiv").innerHTML = "The capital of Missouri is: <bold>" + capital + "</bold>, so says you.";
    }
    else{
        return false;
    }
}
</script> 
4

5 に答える 5

76

適切なテストは次のとおりです。

if (capital != null && capital.length < 1) {

これにより、長さチェックを実行するときに常にcapitalnull ではないことが保証されます。

また、コメントが示唆するように、capital初期null化しないためです。

于 2013-03-31T16:22:11.327 に答える
1

あなたがプログラミングしている言語を知らずに、あなたが提供したコードから。変数capitalはnullです。プロパティの長さを読み取ろうとすると、システムは null 変数を参照しようとするため、読み取れません。を定義する必要がありますcapital

于 2013-03-31T16:21:59.383 に答える
1
if (capital.touched && capital != undefined && capital.length < 1 ) { 
//capital does exists
}
于 2015-04-08T13:53:12.780 に答える
0

私はこれを試しました:

if(capital !== null){ 
//Capital has something 
}
于 2016-07-06T17:58:42.170 に答える