【发布时间】:2013-10-03 10:26:44
【问题描述】:
让我们评估此代码以交换两个变量:
var a = 5, b = 3;
a = ( a -( b = ( a = a+b ) - b ) );
我期望a 的新值应该是3,b 的值应该是5。但我的值为a = 0 and b = 5;
我去阅读了 EcmaScript 算术表达式,发现它将从左到右进行计算。 (但不完全清楚)。
所以我尝试了这个
var a = 5, b = 3;
a = ( ( b = ( a = a+b ) - b ) - a );
现在我收到了a = -3 and b = 5。有人可以解释一下为什么会这样吗?
【问题讨论】:
标签: javascript arithmetic-expressions