【发布时间】:2019-12-26 08:47:26
【问题描述】:
我得到了这段简单的代码:
var x=10;
var y=8;
x -= y += 9;
alert(x+" and "+y);
结果将是“-7 和 17”。
为什么 JavaScript 在 x -= y 之前执行 y +=9?
【问题讨论】:
-
因为
-=和+=是 right associative operators 并且这是从右到左计算的。 -
您可以在astexplorer.net查看订单。展开右侧面板上的表达式以查看顺序
-
@vlaz 停止在 cmets 中回答! ;)
-
@JonasWilms 不是所有事情都与优先级有关吗?我不想回答这个问题,然后发现有人问了另一个问题,仍然只是“如何评估运营商”。
-
@vlaz 不是我所知道的......而且你已经给出了一个很好的答案(作为评论),所以将它作为答案发布不会有任何害处。 (积极的副作用是你更接近 js 金牌徽章,我不再需要欺骗你的建议;))
标签: javascript operators variable-assignment