首页 > 解决方案 > 为什么输出是 16 而不是 11?

问题描述

我正在学习 javascript,我遇到了以下示例,

let n = 2;

n *= 3 + 5;

console.log( n ); 

由于我们在表达式中使用了“*=”,我认为表达式应该是 n = n * 3+5。如果表达式是 n = n * 3+5 那么我们不应该得到 11 吗?我得到16作为答案。有人可以解释为什么答案是 16 而不是 11 吗?

标签: javascriptmathoperatorsinteger-arithmetic

解决方案


因为它遵循操作顺序。+如果我们在语句中添加括号以使其更清晰,则具有更高的优先级*=,它将类似于:

let n = 2;
n *= (3 + 5)
// which means n = n * (3 + 5)
// which is n = n * 8

请参阅:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#table


推荐阅读