a ++ 运算符在操作数之后,称为“后增量”。a变量自增,返回自增之前的值;
++ a 运算符在操作数之前,称为“前增量”。a变量自增,返回自增之后的值。
这里揭示了一种很容易忽略的现象。假如存在a = 1,那么“b =(a ++)+ a;”将如何计算结果呢?按照运算顺序,顺序应该是,1)计算b,2)计算a ++(假设为c值),3)计算a,4)计算c + a,5)将c + a的结果赋值给b。按照“++”的定义,第2中a ++的结果依然是1,即c = 1,然后a立即增1,因此在执行第3步时,a的值已经是2.所以结果为3。
最后,有问题大家一起讨论啊。
注:本文摘自《JavaScript的权威指南》。