在JavaScript中,为什么人们会写typeof myVar == "undefined"
而不是myVar == undefined
?
是出于兼容性原因吗?
答案 0 :(得分: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
范围。 / p>
答案 1 :(得分:1)
因为如果myVar实际上未定义,则typeof运算符不会抛出Error。
myVar == undefined; // Throws a ReferenceError
typeof myVar == "undefined" //True