typeof a ==='undefined'

时间:2013-01-27 20:52:51

标签: javascript

  

可能重复:
  variable === undefined vs. typeof variable === “undefined”

假设undefined未被篡改,以下是等效的吗?

typeof a === 'undefined'

a === undefined

[我问的原因是因为Parsley.js的作者似乎喜欢写'undefined' !== typeof someExpression。]

2 个答案:

答案 0 :(得分:5)

这两种方法几乎相同,只有一种方法:如果typeof变量未被定义为变量,ReferenceError: a is not defined将不会引发a

说,typeof方法更加万无一失。

答案 1 :(得分:1)

如果undefined未被篡改,则它们是等效的。 typeof优于与未定义直接比较的唯一原因是因为undefined可以重新定义为undefined = 5之类的其他内容。另外,正如VisioN指出的那样,当您不检查函数参数的上下文时,可以引发ReferenceError,而不是adefined globally。为了在直接比较您需要执行的全局上下文中的undefined时不能得到ReferenceError

window.a === undefined