Javascript 为什么要解析多个加号运算符?
我不明白为什么下面的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 + + + +
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);