JavaScript比较声明

时间:2016-10-04 21:05:51

标签: javascript comparison

有人可以解释这个比较声明吗? 我理解如何与&&和和||但下面的一个班轮做了别的事情

typeof(varName) === 'undefined' == 0

2 个答案:

答案 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')