JavaScript三等于和三变量比较

4 javascript triple-equals

有人可以解释一下吗?

1 == 1        //true, as expected
1 === 1       //true, as expected
1 == 1 == 1   //true, as expected
1 == 1 == 2   //false, as expected
1 === 1 === 2 //false, as expected
1 === 1 === 1 //false? <--
Run Code Online (Sandbox Code Playgroud)

还有一个布尔逻辑的名称,以这种方式比较两个以上的数字(我称之为"三变量比较",但我认为这是错误的......)

Ja͢*_*͢ck 7

这个表达式:

1 === 1 === 1
Run Code Online (Sandbox Code Playgroud)

被评估为:

(1 === 1) === 1
Run Code Online (Sandbox Code Playgroud)

在评估括号内的表达式后:

true === 1
Run Code Online (Sandbox Code Playgroud)

而且这个表达在逻辑上是错误的.以下表达式true按预期返回:

1 === 1 === true
Run Code Online (Sandbox Code Playgroud)

  • 哈哈,应该测试更多:`5 == 5 == 5` 也是错误的,但是因为 `1 == true` 我被我的示例 `1 == 1 == 1` 绊倒了。+1 谢谢! (2认同)