也许这是一个理论上的问题,但为了检查变量是否存在,最常见的建议是:
typeof(var)==='undefined'
或typeof(var)!=='undefined'
这与typeof(var)=='undefined'
(或typeof(var)!='undefined'
(有何不同?
我的意思是===
和==
。或!==
与!=
。我知道这通常意味着比较类型和值,但在这种情况下,typeof(something)
总是计算为字符串,对吧?
是否存在typeof(var)==='undefined'
和typeof(var)=='undefined'
不相同的情况?
实际上没有区别,因此typeof返回一个字符串。
如果希望避免自动转换,请使用===
和!==
。
示例:
alert(1!='1')//false
alert(1!=='1')//true
alert('1'!='1')//false
alert('1'!=='1')//false
alert(true==1)//true
alert(true===1)//false
'==='和'!==='运算符要快一点,所以在大多数情况下,应该使用这些运算符,而不是"=="或"!=="。
对于!=
部分,!
将被视为NOT。typeof var !=='undefined'
=>if typeof var is not undefined