1

在 JavaScript 中,为什么人们会写typeof myVar == "undefined"而不是myVar == undefined?

是出于兼容性原因吗?

4

2 回答 2

2

这是主要原因:

if(a == undefined) console.log('test')
>> ReferenceError: a is not defined
if(typeof a == "undefined") console.log('test')
>> test

但是如果你运行这个比较:

if(window.a == undefined) console.log('test')
>> test

因此,如果您将a其用作独立变量,则不能。使用window它是可能的,并且您将使用哪种方法并不重要,但正如我在评论中所说,使用它更安全,typeof因为并非每个变量都属于window范围。

于 2013-05-06T08:10:21.030 回答
1

因为如果 myVar 实际上未定义,则 typeof 运算符不会引发错误。

myVar == undefined; // Throws a ReferenceError

typeof myVar == "undefined" //True
于 2013-05-06T08:09:08.733 回答