在Javascript中检查一个值是否存在

6
我该如何防止 Javascript 弹窗在弹窗的值未定义时触发?换句话说,就像这样:
if (alert(message) != 'undefined') {
        alert(message);
    }
1个回答

10
使用 typeof:
if (typeof message !== 'undefined')

不要将alert(message)放入if表达式中,否则你将会执行alert(在我们知道message的类型之前我们要避免),并且返回值(顺便说一下,也是undefined)将与undefined进行比较。 更新:对于!==的澄清:
这个运算符不仅比较两个操作数的值,还比较它们的类型。这意味着不会进行类型强制转换
42 == "42" // true
42 === "42" // false

在这种情况下,实际上并不是必需的,因为我们知道typeof始终返回一个字符串,但这是一个好的做法,如果您彻底且一致地使用它,那么在哪里需要类型转换以及在哪里不需要就更加清晰明了。

2
注意Felix使用的是!==运算符而不是!=。Douglas Crockford在这里解释了这个问题(以及其他很棒的JS知识):http://video.yahoo.com/watch/630959/2974197 - danjah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接