【发布时间】:2021-11-03 15:47:10
【问题描述】:
我在学习 javascript 时遇到了以下示例,
let n = 2;
n *= 3 + 5;
console.log( n );
由于我们在表达式中使用了“*=”,我认为表达式应该是 n = n * 3+5。如果表达式是 n = n * 3+5 那么我们不应该得到 11 吗?我得到16作为答案。有人可以解释一下为什么答案是 16 而不是 11 吗?
【问题讨论】:
-
*的优先级高于+是正确的;但*=的优先级低于+。根据经验,其中包含符号=的运算符的优先级低于没有符号的运算符。但是,在这种特殊情况下,我认为用括号编写n *= (3 + 5);会更优雅。尽管括号是多余的且不是必需的,但它们使人类更容易阅读。
标签: javascript math operators integer-arithmetic