有人可以解释这个比较声明吗? 我理解如何与&&和和||但下面的一个班轮做了别的事情
typeof(varName) === 'undefined' == 0
答案 0 :(得分:4)
可以说varName
未定义。您的代码行将完成以下步骤(每个新行都是下一步):
typeof(varName) === 'undefined' == 0
typeof(undefined) === 'undefined' == 0
'undefined' === 'undefined' == 0
true == 0
false
现在我们可以说varName
被定义为等于5
:
typeof(varName) === 'undefined' == 0
typeof(5) === 'undefined' == 0
'number' === 'undefined' == 0
false == 0
true
这是错误的代码。您可以使用typeof(varName) !== 'undefined'
答案 1 :(得分:0)
typeof(varName) === 'undefined' == 0
上述表达式也可以写成
!(typeof(varName) === 'undefined')
他们使用!
而不是非运算符(== 0
)。但如果你执行===0
,它将无法工作,因为它还会检查数据类型并始终返回false
。
示例:
true == 0 => false
false == 0 => true
但是如果你使用===
true === 0 => false
false === 0 => false
注意:typeof(varName) === 'undefined' == 0
是糟糕的方式。
使用not operator:
!(typeof(varName) === 'undefined')