无法读取属性'length'的null(javascript)

时间:2013-03-31 16:19:15

标签: javascript null

尝试调试时,我遇到此行的'length'null错误。它写的就像书中指示的那样,所以我不明白为什么它会给我错误? 谢谢,=)

if (capital.length < 1) {

(以下是所要求的完整代码.. SORRY)

<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> 

5 个答案:

答案 0 :(得分:41)

正确的测试是:

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

当您执行长度检查时,这可确保capital 总是非空。

此外,正如评论所示,capitalnull,因为您从未对其进行初始化。

答案 1 :(得分:2)

if (capital.touched && capital != undefined && capital.length < 1 ) { 
//capital does exists
}

答案 2 :(得分:1)

从您提供的代码中,不知道您正在编程的语言。变量capital为空。当您尝试读取属性长度时,系统无法正在尝试使用null变量。您需要定义capital

答案 3 :(得分:0)

我试过了:

if(capital !== null){ 
//Capital has something 
}

答案 4 :(得分:0)

这也适用-评估(如果定义了资本)。如果不是,则表示该资本是不确定的或为null(或其他值,在js中为false)

if (capital && capital.length < 1) {do your stuff}