i++ 与 ++i的区别

(1)如果只是看i++和++i,这两个是等价的,都等同于i=i+1,都是变量自身加1。
(2)在一般情况下,它们都是跟赋值联系在一起。


比如:
var a;
a=i++; //将i的值赋值给a,即a=i;然后再执行i=i+1;
也就是【a=i++;】与【a=i; i=i+1;】等价。
a=++i; //将i+1的值赋给a,即a=i+1;然后再执行i=i+1;
也就是【a=++i;】与【a=i+1;i=i+1;】等价。

 

(3)【总结一下】
①前置++是将自身加1的值赋值给新变量,同时自身也加1;
②后置++是将自身的值赋给新变量,然后才自身加1.
 
var i = 0;

var a = i++;
console.log(a); // 0  [ a=i; i=i+1 ];
console.log(i); // 1

var b = ++i;
console.log(b); // 2  [ b=i+1; i=i+1 ];
console.log(i); // 2

var a = 0;
a = ++a + a++ + a++ + a++ + a++; // 11 [1 + 1 + 2 + 3 + 4]

 

 
参考:知乎 行人要走人行道的回答
链接:https://www.zhihu.com/question/19811087/answer/83748442
posted @ 2017-05-12 15:33  带上饼干  阅读(337)  评论(0编辑  收藏  举报