- =运算符,与输出结果混淆

Zul*_*ulu 1 flashdevelop operators actionscript-3

我最近在追踪一行代码:

x -= 353 - 350
Run Code Online (Sandbox Code Playgroud)

然而,答案是-3.

令我惊讶的是,我认为 - =运算符将遵循:

x = x - 353 - 350
Run Code Online (Sandbox Code Playgroud)

然后等于 -703

为什么是实际答案-3而不是-703

我在这个网站上寻找参考:http: //www.adobe.com/devnet/actionscript/learning/as3-fundamentals/operators.html

它给出的例子让我相信运算符 - =应该产生-703.

var x:uint = 5; x -= 5; // x is now 0
Run Code Online (Sandbox Code Playgroud)

会不会在上面的例子代表了怎样x = x - 50?或者是否有我缺少的替代代码/逻辑?

Mar*_*c B 5

运营商的优势:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

-=具有优先级3,而+-具有优先权13(较高),

所以代码执行相当于

x -= (353 - 350)
x -= (3)
x -= 3;
x = x - 3;
Run Code Online (Sandbox Code Playgroud)

根据基本数学:

x -= (353 - 350)
x += -(353 - 350)
x += (-353 + 350)
x += (-3);
Run Code Online (Sandbox Code Playgroud)