如果警报值未定义,如何阻止Javascript警报触发?换句话说,就像这样:
if (alert(message) != 'undefined') {
alert(message);
}
答案 0 :(得分:10)
使用typeof
:
if (typeof message !== 'undefined')
不要将alert(message)
放入if
表达式中,否则您将执行 alert
(在我们知道{的类型之前我们要避免{1}})和返回值(也是message
btw;))将与undefined
进行比较。
更新 undefined
的澄清:
此运算符不仅可以比较两个操作数的值,还可以比较类型。这意味着没有type coercion完成:
!==
在这种情况下,它并不是真的必要,因为我们知道42 == "42" // true
42 === "42" // false
总是返回一个字符串,但这是一个很好的做法,如果你彻底和一致地使用它,那么你真正希望有类型强制的地方就更清楚了什么地方没有。