检查Javascript中是否存在值

seh*_*mel 6 javascript jquery

如果警报值未定义,如何阻止Javascript警报触发?换句话说,这样的事情:

if (alert(message) != 'undefined') {
        alert(message);
    }
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 10

用途typeof:

if (typeof message !== 'undefined')
Run Code Online (Sandbox Code Playgroud)

不要把alert(message)if表达,否则就会执行 alert(这是我们希望避免才知道的类型message)和返回值(这也是undefined顺便说一句;))将被比作undefined.

更新澄清!==:

该运算符不仅比较两个操作数的值,还比较类型.这意味着没有进行类型强制:

42 == "42" // true
42 === "42" // false
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它是不是真的有必要,因为我们知道,typeof总是返回一个字符串,但它是很好的做法,如果你彻底和坚持使用它,它更清楚,你真的想强制类型转换,并且在未.

  • 注意Felix如何使用!==运算符而不是!=.Douglas Crockford在这里解释了这个(以及其他令人敬畏的JS事实):http://video.yahoo.com/watch/630959/2974197 (2认同)