【发布时间】:2014-11-14 21:42:15
【问题描述】:
一些消息来源表明,有两种规范的方法可以检查变量是否未定义:
foo === undefined
typeof foo === 'undefined'
但是谁能解释一下,为什么要使用 === 而不是 == ?
编辑:问题不在于 === 与 ==。它是关于使用带有“未定义”的正确运算符。 === 和 == 之间的区别是显而易见的。但问题是在检查值是否未定义时,哪个运算符更正确。
【问题讨论】:
-
===比较类型 first 然后值。==比较值并可以转换值以使类型匹配。 -
==执行类型转换以尝试得出肯定的结果。尤其是typeof,它只返回一个字符串,不需要转换类型,为什么要支付开销? -
null == undefined,但null !== undefined。
标签: javascript typeof