关于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