关于i++的解释

根据 JavaScript Language Specification 的定义, 

表达式 A=B
的执行步骤,简单地说,就是:
1. 对等号左边的表达式 A 进行计算,算出最终的结果,必须是参照或变量;
2. 对等号右边的表达式 B 进行计算,得到返回值;
3. 把第2步得到的右边的返回值,赋予第一步中得到的左边的参照或变量。

表达式 A++
的执行步骤是,简单地说,就是:
1. 对 A 进行计算,算出最终的结果,必须是参照或变量;
2. 第一步中得到的参照或变量的值 加一;
3. 整个表达式的返回值是 第二步加一之前,第一步中得到的参照或变量的值。

i=0;
i=i++;

执行步骤如下:

1. 计算等号左边,不用算,结果就是就是变量 i;
2. 对等号右边的表达式 i++ 进行计算;
  2.1. i 是变量,本身不用算; 
  2.2. i++ 的计算时,i 的值被加 1; 
  2.3. 整个 i++ 表达式的计算结果的 返回值是,i被加一之前的值 0。
3. 把第一步中算出的右边的结果 0, 赋予左边的变量 i.

结果 i 的值是 0

原文地址:https://www.cnblogs.com/lubocsu/p/4899863.html