以下是代码,
<p id="sayHello"></p>
<script type="text/javascript">
var yourName = window['prompt']("What is your name?");
if (yourName != null) {
window['document']['getElementById']("sayHello").innerHTML = "Hello " + yourName;
} else {
window['alert']("Please enter your name next time");
}
</script>
为此,else
块需要根据prompt
中给出的输入执行。
prompt
框中应该输入什么来测试基本类型null
的{{1}}值?
答案 0 :(得分:0)
当您在提示框中单击取消时,将执行else块。
答案 1 :(得分:0)
如果用户单击“确定”而未输入任何文本,则返回空字符串。
所以你真的要检查if (yourName !== null && yourName !== "")
,因为提示确实返回了空字符串(因此导致你的else
子句被错误地执行,因为它传递了非空检查)。
答案 2 :(得分:0)
我认为你实际上正在寻找空的字符串。而且null是一个原始值&amp; null 表示“空”值,即不存在对象值。 所以要检查null,我们可以使用
if(somVar === null && typeof somVar ==='object')
因此您可以将代码安排为
var yourName = window['prompt']("What is your name?");
if (yourName === null & typeof(yourName) ==='object') {
alert("Please enter your name next time");
} else {
document.getElementById("sayHello").innerHTML = "Hello " + yourName;
}
另请注意,这将仅测试为空,并且不会传递给"",undefined,false,0
&amp; NaN
。
旁边是否有任何理由使用
window['document']['getElementById']("sayHello")
什么时候可以这样做
document.getElementById("sayHello").innerHTML
如果要检查空字符串,则还必须验证输入是否为空