Gry*_*yxs 3 javascript operators
我知道标题有些模糊,但我不确定如何真正解释这一点.所以,在代码中
var a= 2, b=3;
a+=b;
//5
Run Code Online (Sandbox Code Playgroud)
这是非常基本的JavaScript.现在我想检查结果是否大于某个数字
var a= 2, b=3, c=4;
(a+=b) >= c;
//true
Run Code Online (Sandbox Code Playgroud)
但是,如果我忘记添加括号,我不明白结果可能来自何处
var a= 2, b=3, c=4;
a += b >= c;
//2
Run Code Online (Sandbox Code Playgroud)
我尝试阅读一些关于操作顺序和诸如此类的东西,但我仍然无法理解代码如何输出"2"
T.J*_*der 10
因为
a += b >= c;
Run Code Online (Sandbox Code Playgroud)
是
a += (b >= c);
Run Code Online (Sandbox Code Playgroud)
这是(在你的情况下)
a += (false);
Run Code Online (Sandbox Code Playgroud)
最终成为
a += 0;
Run Code Online (Sandbox Code Playgroud)
是的a.
在对结果进行任何操作之前,将评估所有赋值运算符的右侧.因此b >= c评估,给予我们false,0当你试图将它作为一个数字处理时,它被强制执行a +=.