为什么1 === 1 === 1假?

sur*_*lit 32 javascript boolean-logic operators

在浏览器控制台中,输入1===1计算结果true.输入1===1===1评估为false.

我认为这是因为评估语句的方式:

1 === 1 === 1

(1 === 1) === 1

评估为

true === 1

是的false.

它是否正确?如果没有,这种行为的真正原因是什么?

aga*_*aga 40

是的,你说得对.这里有两个相等检查,它们具有相同的运算符优先级.首先评估第一个,然后将其结果应用于下一个等式检查.

1===1===1是一样的(1===1)===1true===1它是false,因为在这里你的价值观和他们的类型检查.1==1==1将导致true的,因为它由只有值,所以检查平等1==1==1等于(1==1)==1等于true==1等于true.


Dav*_*vid 20

===运营商不只是测试的平等,而是还可以键入平等.由于整数不是布尔值,因此true === 1为false.

相比:

true == 1; // true
true === 1; // false
Run Code Online (Sandbox Code Playgroud)

例子.

  • 它是'true === 1`,因为相等运算符是左关联的.`true === 1 === 1 // false`而`1 === 1 === true // true` (3认同)