在 JavaScript 中,为什么人们会写typeof myVar == "undefined"
而不是myVar == undefined
?
是出于兼容性原因吗?
在 JavaScript 中,为什么人们会写typeof myVar == "undefined"
而不是myVar == undefined
?
是出于兼容性原因吗?
这是主要原因:
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
范围。
因为如果 myVar 实际上未定义,则 typeof 运算符不会引发错误。
myVar == undefined; // Throws a ReferenceError
typeof myVar == "undefined" //True