Javascript 为什么要解析多个加号运算符?

Javascript 为什么要解析多个加号运算符?,javascript,parsing,operators,Javascript,Parsing,Operators,我不明白为什么下面的javascript会解析;发生什么事了 var a = 0; var b = 0; console.log(a + + + + + + + b); console.log(a); console.log(b); 此外,当它解析时,我至少希望a或b中的一个会增加,但它们不会增加 输出(铬): 输出(Firefox): 不,增量方式是使用a++ 您在这里做的是更改数字的符号,但我们知道+不会更改符号(与-相反)。因此,在这方面: console.log(a + + + +

我不明白为什么下面的javascript会解析;发生什么事了

var a = 0;
var b = 0;
console.log(a + + + + + + + b);
console.log(a);
console.log(b);
此外,当它解析时,我至少希望
a
b
中的一个会增加,但它们不会增加

输出(铬): 输出(Firefox):
不,增量方式是使用
a++

您在这里做的是更改数字的符号,但我们知道
+
不会更改符号(与
-
相反)。因此,在这方面:

 console.log(a + + + + + + + b);
你是说:

a + (+ (+ (+ (+ b) ) ) )
所以你既不改变符号也不增加数字。选中此项:

 console.log(a++ + + + + + + + b);
您将在
变量中获得增量。输出:

 0
 1
 0

Javascript有一个一元加号运算符,因此该表达式与

console.log(a + (+ (+ (+ (+ (+ (+ b)))))));
这最终相当于

console.log(a + b);

请注意,增量运算符
++
(无论是前缀还是后缀运算符)在
++
s之间不能有空格。

是有意义的,但如果是这种情况,那么为什么以下输出
-1
<代码>变量x=-1;console.log(''++x)
上面的语句在数学上是正确的,它不仅仅指javascript。如果你看到我的答案,我解释你在这里做的
是改变数字的符号,但是我们知道+不改变符号(与-)相反。
console.log(a + (+ (+ (+ (+ (+ (+ b)))))));
console.log(a + b);