检查类型===“undefined”而不是=== undefined有什么好处吗?

时间:2017-06-09 06:48:38

标签: javascript

我一直在使用typeof运算符来检查变量是否未定义如下:

if( typeof numLines === "undefined" ){
  // do something
}

但使用以下方法可以实现同样的目标:

if( numLines === undefined ){
  // do something
}

据我所知,我曾在某处读到过类型方法更好但现在我觉得如果根本没有任何好处,我为什么要使用稍微长一点的陈述呢?所以我的问题是:

  1. 坚持typeof方法进行此类检查确实有任何好处吗?
  2. 你能提供一些例子,其中一种方法比另一种更好吗?
  3. 感谢。

1 个答案:

答案 0 :(得分:1)

根据related question undefined并不能保证您的期望是:

var undefined = 'uh oh'

if (numLines === undefined) {
  // Seems safe but isn't
}
else if (typeof(numlines) == 'undefined') {
  // Actually gets it.
}

undefined在JavaScript中没有被定位,这很奇怪,但这就是ECMA标准的原因。