运算符优先级对于 && 重要吗? 和 == 在 javascript 中?

发布于 2024-07-16 10:19:44 字数 125 浏览 5 评论 0原文

更具体地说,语句中是否存在一组值(a、b 和 c),其中运算符优先级很重要:

var value = (a && b == c);

(NaN 除外)。

More specifically, is there a set of values ( a, b and c) for which the operator precedence matters in the statement:

var value = (a && b == c);

(with the exception of NaN).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

影子的影子 2024-07-23 10:19:44

js> false && true == false
false
js> (false && true) == false
true

由于 == 的优先级高于 &&,因此第一个被解析为 false && (true == false),相当于 false && false,因此计算结果为 false。 第二个相当于false == false,即true

Yes

js> false && true == false
false
js> (false && true) == false
true

Since == has higher precedence than &&, the first is parsed as false && (true == false), which is equivalent to false && false, and thus evaluates to false. The second is equivalent to false == false, which is true

櫻之舞 2024-07-23 10:19:44

该语言经过解析后,您的语句相当于 (a && (b == c))。 相等运算符将始终在 &&|| 和其他逻辑运算符之前运行。 您可以在此处找到详细信息。

The language is parsed such that your statement is the equivalent of (a && (b == c)). The equality operator will always run before &&, || and other logical operators. You can find the nitty-gritty details here.

初雪 2024-07-23 10:19:44

是的。 ==&& 绑定更紧密,因此您所绑定的内容请

var val = a && ( b == c)

参阅 这里。 所以 a==0b==1c==0 为 false,而 (a&&b) ==c 是正确的。

(修正了拼写错误。该死。)

Yup. == binds more tightly than &&, so what you have binds as

var val = a && ( b == c)

See here. So a==0, b==1 and c==0 is false, while (a&&b)==c is true.

(Fixed typo. Dammit.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文