我知道===
运算符用于确定它的两个操作数是否相等和相同。也就是说,如果左侧操作数为1,则右侧操作数必须为1才能返回true
。但我不明白为什么javascript会为此计算返回true。
true || 1 === 1/3;
//true;
我不知道这个结果在javascript中是如何实现的。
答案 0 :(得分:5)
永远不会检查===
操作。 true
的陈述是正确的。
另请参阅this关于如何评估陈述的问题和答案。
答案 1 :(得分:1)
||意思是。 '真或假'总是评估为真。
答案 2 :(得分:1)
1 === 1/3
是false
||
是OR
所以你的:true || 1 === 1/3;
- >
true
或false
为true
答案 3 :(得分:1)
从评论中,您似乎错误地认为表达方式意味着significant locations
。它没有,因为(true || 1) === 1/3;
的优先级较低,所以它就像||
。
Javascript(以及大多数其他类C语言)中的逻辑表达式使用短路,因此当值为true时,它不会评估剩余的表达式
答案 4 :(得分:0)
您的代码归结为:
true || 1 === 1/3 (false)
或true || false
因为如果其中一个条件为真,布尔运算符||
将返回true,那么结果为true。