我最近在跟踪一行代码:
x -= 353 - 350
然而,答案是-3。
令我惊讶的是,我认为 - =运算符会跟随:
x = x - 353 - 350
然后等于-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
以上示例不会代表x = x - 5
0
的方式吗?或者是否有我缺少的替代代码/逻辑?
答案 0 :(得分: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;
根据基础数学:
x -= (353 - 350)
x += -(353 - 350)
x += (-353 + 350)
x += (-3);
答案 1 :(得分:4)
我已经用Python测试了它。它似乎只是基本的算术..
假设after(function() {
console.log('here at after');
request.del('http://localhost:3000/api/deleteAllTasks', function(req, res) {
console.log(req);
});
});
目前为x
zero
等于说x -= 353 - 350
。
首先得到括号的结果,然后方程只是x = x - (353 - 350)
得到结果:x = 0 - 3
答案 2 :(得分:2)
Daniel和Marc是对的。
您使用错误的运算符: 要获得-703,你应该使用 - =喜欢这个
var x:int = 0;
x -= 353 + 350;
// x -= (353 + 350);
// So => x -= 703
trace(x); //output -703
由于
x -= 353 - 350;
表示x - = 3; 同样的逻辑。