如何在Javascript中测试空值条件?

时间:2015-12-08 03:49:02

标签: javascript

以下是代码,

<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}}值?

3 个答案:

答案 0 :(得分:0)

当您在提示框中单击取消时,将执行else块。

答案 1 :(得分:0)

根据MDN window.prompt docs

  

如果用户单击“确定”而未输入任何文本,则返回空字符串。

所以你真的要检查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 

如果要检查空字符串,则还必须验证输入是否为空

DEMO