为什么true || 1 === 1/3在JavaScript中返回true

时间:2015-10-02 08:56:37

标签: javascript

我知道===运算符用于确定它的两个操作数是否相等和相同。也就是说,如果左侧操作数为1,则右侧操作数必须为1才能返回true。但我不明白为什么javascript会为此计算返回true。

true || 1 === 1/3;

//true;

我不知道这个结果在javascript中是如何实现的。

5 个答案:

答案 0 :(得分:5)

永远不会检查===操作。 true的陈述是正确的。

另请参阅this关于如何评估陈述的问题和答案。

答案 1 :(得分:1)

||意思是。 '真或假'总是评估为真。

答案 2 :(得分:1)

1 === 1/3false

||OR

所以你的:true || 1 === 1/3; - > truefalsetrue

答案 3 :(得分:1)

从评论中,您似乎错误地认为表达方式意味着significant locations。它没有,因为(true || 1) === 1/3;的优先级较低,所以它就像||

Javascript(以及大多数其他类C语言)中的逻辑表达式使用短路,因此当值为true时,它不会评估剩余的表达式

答案 4 :(得分:0)

您的代码归结为:

true || 1 === 1/3 (false)

true || false

因为如果其中一个条件为真,布尔运算符||将返回true,那么结果为true。