我不明白为什么以下的javascript解析;发生了什么事?
var a = 0;
var b = 0;
console.log(a + + + + + + + b);
console.log(a);
console.log(b);
此外,当它进行解析时,我至少期望a
或b
中的一个增加,但它们不会增加。
0
0
0
0
0
0
答案 0 :(得分:2)
不,增量方式是a++
。
您在此处所做的是更改号码的符号,但我们知道+
不会更改符号(与-
相反)。所以在这:
console.log(a + + + + + + + b);
你在说:
a + (+ (+ (+ (+ b) ) ) )
所以你不是在改变符号,也不是递增数字。检查一下:
console.log(a++ + + + + + + + b);
您将获得a
变量的增量。输出:
0
1
0
答案 1 :(得分:2)
Javascript有一个一元加号运算符,所以这个表达式与
基本相同console.log(a + (+ (+ (+ (+ (+ (+ b)))))));
这最终只相当于
console.log(a + b);
请注意,增量运算符++
(无论是前缀还是后缀运算符)在+
之间不能有空格。