可能重复:
variable === undefined vs. typeof variable === “undefined”</a>
假设undefined
没有被篡改,下面是等价的吗?
typeof a === 'undefined'
和
a === undefined
?
[我问的原因是因为Parsley.js的作者似乎喜欢写作'undefined' !== typeof someExpression
。]
可能重复:
variable === undefined vs. typeof variable === “undefined”</a>
假设undefined
没有被篡改,下面是等价的吗?
typeof a === 'undefined'
和
a === undefined
?
[我问的原因是因为Parsley.js的作者似乎喜欢写作'undefined' !== typeof someExpression
。]
这两种方法几乎相同,除了一个:如果变量未定义为变量,typeof
则不会引发。ReferenceError: a is not defined
a
说,typeof
方法只是更加万无一失。
undefined
是的,如果没有被篡改,它们是等效的。typeof
与 undefined 直接比较相比,唯一的原因是因为undefined
可以重新定义为其他任何东西,例如undefined = 5
. 同样正如 VisioN 所指出的,ReferenceError
当您不检查函数参数的上下文而是检查是否a
是时,a 可以引发 a defined globally
。为了ReferenceError
在全局上下文中直接与 undefined 进行比较时不会得到 a ,您需要执行:
window.a === undefined