繁体   English   中英

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

[英]Why does `true ||1 === 1/3` returns true in JavaScript?

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

true || 1 === 1/3;

//true;

我不明白这个结果在 JavaScript 中是如何成立的。

===操作永远不会被检查。 该陈述为true

另见关于如何if语句进行评估的问题和答案。

|| 意味着或。 “真或假”总是评估为真。

1 === 1/3false

|| OR

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

我知道 === 运算符用于确定其两个操作数是否相等和相同

“真”和“1/3”是相等的吗?

从问题和评论看来,您似乎错误地认为该表达意味着

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

true1/3确实相等和相同,因此预期结果将是错误的。 但事实并非如此,因为|| 优先级低于=== 所以它是这样解析的: true || (1 === 1/3); true || (1 === 1/3); .

Javascript(和大多数其他类似 C 的语言)中的逻辑表达式是短路的,因此在确定结果后,不会评估剩余的表达式。 这意味着最终结果将是真实的

您的代码归结为:

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

true || false true || false

因为布尔运算符|| 如果其中一个条件为真,将返回真,你最终会得到真。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM