文章首次發(fā)表在i++和++i的區(qū)別
++是遞增操作符, 使用時可以分為前置型和后置型, ++i是前置型, i++是后置型;
后置型和前置型最大的區(qū)別是:
- 前置操作, 變量的值都是在語句被求值前改變的
- 后置操作, 是在包含它們的語句被求值之后才執(zhí)行的
可以看下面幾個例子
例1:
var age = 29;
++age; // 30
var num1 = 29;
num1++; // 30
把遞增操作符放在變量后面并不會改變語句的結(jié)果, 因為遞增是這條語句的唯一操作, 但是, 當語句中還包含其他操作時, 上面的區(qū)別就會非常明顯了;
例2
var num1 = 2;
var num2 = 20;
var num3 = --num1 + num2; // 21
var num4 = num1 + num2; // 21
這里num3值所以等于21, 是因為num1先減了1再與num2相加, 而變量num4也等于21是因為相應(yīng)的加法操作使用了num1減去1之后的值;
var num1 = 2;
var num2 = 20;
var num3 = num1-- + num2; // 22
var num4 = num1 + num2; // 21
這里僅僅將前置遞減改成了后置遞減, 就可以看到差別,在前面使用前置遞減的例子中, num3和num4都等于21. 而在這個例子中, num3等于22, num4等于21. 差別的根源在于, 這里在計算num3時使用了num1的原始值2完成了加法計算, 而num4則使用了遞減后的值