可能重复:
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 defineda
说,typeof方法只是更加万无一失。
undefined是的,如果没有被篡改,它们是等效的。typeof与 undefined 直接比较相比,唯一的原因是因为undefined可以重新定义为其他任何东西,例如undefined = 5. 同样正如 VisioN 所指出的,ReferenceError当您不检查函数参数的上下文而是检查是否a是时,a 可以引发 a defined globally。为了ReferenceError在全局上下文中直接与 undefined 进行比较时不会得到 a ,您需要执行:
window.a === undefined