我在JavaScript上有这个简单的代码。
var a = 10;
var b = 20;
a=a+b-(b=a);
document.write("a = " + a + "</br> b = " + b);
有人可以解释一下,这些变量是如何改变这些值的?在这种情况下,赋值运算符是如何工作的?我认为,在第一步,变量b由a:(b = a)中的数字重写。
答案 0 :(得分:2)
它通常以从左到右的方式从外到内进行评估 赋值表达式返回指定的值。
a = a + b - (b = a); // a=10 b=20
a = 10 + b -( b = a); // a=10 b=20
a = 10 + 20 - (b = a); // a=10 b=20
a = 30 - (b = a); // a=10 b=20
a = 30 - (b = 10); // a=10 b=20
a = 30 - (10); // a=10 b=10
a = 30 - 10; // a=10 b=10
a = 20; // a=10 b=10
20; // a=20 b=10
答案 1 :(得分:1)
以下简单说明。
1。我们正在分配初始值:
var a = 10;
var b = 20;
2。我们在这里说a is equal to 10+20 - (10)
。因此,a
现在等于20
而b
等于10
,因为我们已分配<{1}} 之前 a
的新价值。
a
3。结果:
a=a+b-(b=a);
&#13;
答案 2 :(得分:0)
Well, let's look closely at this: a = a + b - (b = a);
Let's replace variables with values a = (10 + 20) - (10)
This is because B == 20 until redefined at the end of the expression.