无法读取 null 的属性“length”(javascript)
2013-03-31
197704
尝试调试时,我收到此行的“长度”空错误。它按照书上的说明编写,所以我不明白为什么会给我这个错误? 谢谢,=)
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>
3个回答
正确的测试是:
if (capital != null && capital.length < 1) {
这可确保在执行长度检查时,
capital
始终
非空。
此外,正如注释所暗示的,
capital
为
null
,因为您从未初始化它。
Hunter McMillen
2013-03-31
这也有效 - 如果 capital 已定义,则进行评估。如果没有,则意味着 capital 未定义或为 null(或其他值,在 js 中评估为 false)
if (capital && capital.length < 1) {do your stuff}
Kamil Naja
2019-06-13
从您提供的代码来看,不知道您编程的语言。变量
capital
为空。当您尝试读取属性长度时,系统无法读取,因为它试图遵循空变量。您需要定义
capital
。
secretformula
2013-03-31