js中i++和++j的区别

137 阅读1分钟

js中i++和++j的区别

++i和i++区别在于运算顺序和结合方向。

js中有两种自加运算,其运算符均为++,功能为将运算符自加1.

其中:

  • ++i被称为前自加,其后面的变量执行自加操作,其运算为,先执行自加操作,再引用i值。

  • i++被称为后自加,其前面的变量执行自加操作,其运算为,先引用i值,再进行自加操作。

如果自加语句独立成为一个单独的语句,不执行其他操作,那么前后自加是完全相同的。

比如单独的一行:

a++;和++a;是一样的。

再比如,常见的for循环:

for(i = 0; i < 100; i ++)

for(i = 0; i < 100; ++i)

这里用到的++i和i++是完全相同的,没有区别。

当运算变量本身值会在自加语句中,同时执行其它操作,二者就有区别了。

比如

var a;

var i = 10;

a = i ++; //这里i要先赋值,再自加。语句执行后a=10, i = 11;

而如果写成:


var a;

var i = 10;

a = ++i; //这里i要先自加,再赋值。语句执行后a=11, i = 11;

再举一个例子。


var i =0;

while(i++<10);

i会先和10比较大小,然后执行自加。这样当i=10时,退出循环,再执行一次自加,退出后i值为11。

而如果写成


while(++i<10);

是先执行自加,然后再与10比较。这样在i=9时,先自加,得到i=10,然后比较就会退出循环了。这种情况下,退出后i值为10。