JavaScript:typeof(var)==';未定义';vs==';未定义';?

JavaScript:typeof(var)==';未定义';vs==';未定义';?,javascript,comparison,undefined,typeof,Javascript,Comparison,Undefined,Typeof,也许这是一个理论问题,但要检查变量是否存在,最常见的建议是: typeof(var)=='undefined'或typeof(var)!='未定义的“ 这与typeof(var)==“未定义”(或typeof(var)!=“未定义”)有何不同 我的意思是==与==相比。或者==vs=。我知道这通常意味着比较类型和值,但在这种情况下,typeof(something)总是计算为字符串,对吗 有没有可能出现typeof(var)==“undefined”和typeof(var)==“undefine

也许这是一个理论问题,但要检查变量是否存在,最常见的建议是:

typeof(var)=='undefined'
typeof(var)!='未定义的“

这与
typeof(var)==“未定义”
(或
typeof(var)!=“未定义”
)有何不同

我的意思是
==
==
相比。或者
==vs
=。我知道这通常意味着比较类型和值,但在这种情况下,
typeof(something)
总是计算为字符串,对吗


有没有可能出现
typeof(var)==“undefined”
typeof(var)==“undefined”
不一样的情况=部分,
将被视为非<代码>变量类型!=='未定义“
=>
如果typeof var不是未定义的

实际上没有区别,因此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

“==”和“!==”的运算符的速度要快一点,所以在大多数情况下,应该使用它们而不是“==”或“!=”

这个问题的答案应该有助于澄清。。。你说得对。有些人喜欢总是使用
===
来保持一致(或者他们在某个地方读到
==
纯粹是邪恶的,应该不惜一切代价加以避免)。简要说明:
typeof
是一个操作符,而不是一个函数。可以省略这些括号。是的,typeof运算符始终返回此处提到的字符串:。我想不出哪种情况下两种情况是不一样的,只是因为typeof返回stringThank,是的,我知道,我只是想知道
typeof var!='未定义的“
类型变量!=”未定义“
,但显然没有。这只是偏好问题。但是在某些语言中,在if语句中使用
=
是合适的,因为这样可以检查,而只设置一个
=
语句(在if中总是返回strue)。把他们分开很好。