这期的题目是

请问以下 alert 语句分别弹出的值?

var a = b = c = d = e = f = 1;
alert(a++);
alert(++b); 
alert(++ c);
alert(d ++);
alert(+ +e);
alert(+ + f);

这次主要考验大家对于操作符的理解,特别是一元操作符。让我们先来回顾下 Mozilla 官方 对于操作符方面的解释

下面再理解下 ++ 这个操作符号,通常我们都会将一元操作符直接加在变量的后面。类似的就变成了习惯,以至于对于这样的语句

alert(++                                         b);

就会产生怀疑。但是实际上,他们还是正确的( 来源 )。

「++ c 和 d ++ 只是运算符和运算数之间多了个空格,其实相当于++c和d++,同时建议大家除了 for (var i = 0; i < n; ++i) 这样的应用外,尽量少使用 ++ 和 --, 一来提高代码的可读性,二来避免某些不完善的 code formatter 导致错误」 -- from 小马。

那么上述问题的答案就非常明显了,分别是 1、2、2、1、1、1 。下面,再布置道家庭作业,来自 BT 的 小虎 同志 -_-!

var a = 1;
alert(- + - + + + + - + - - - - - - - + (-+-+-+-+-a++));

请问,上述的 alert 语句会弹出什么值?