背景:i++还是++i这个问题,我为什么记下了,又忘记了,我觉得这是一个哲学问题。
这是一个医学问题,这是一个物理问题:
Firefox下,打开一个空白页面,按下:Shift+F4,调出Js调试工具:
先后是:
1
2
2
2
原因如下:
a= i++;
则相当于 a=i;i=i+1; //alert i++ 时:相当于a=i,还是原值1。后面再alerti时相当于i=i+1了等于2.
a=++i;
则相当于 i=i+1;a=i;// alert ++i 时,相当于前面的i=i+1,所以就等于2了,而接着再alert i 时还是2.
________________________________________________________
都是i=i+1的意思,区别在于i++是i先不自加,在语句完后自加,++i先自加;
列如a=1+i++;i本来为1的话,这里a=1+1;语句完后i才加1为2;
a=1+++i的话就先i=i+1;i=2.然后a=i+1,a=3
直接使用看不出区别,都是变量i加1
在赋值时才能进行区别,
如:
y=i++ // y的值为i (先引用,后运算)
y=++i // y的值为i+1的结果 (先运算,后引用)
++i是在使用i之前先使i的值加1
i++是在使用i之后,使i的值加1
这是一个医学问题,这是一个物理问题:
Firefox下,打开一个空白页面,按下:Shift+F4,调出Js调试工具:
先后是:
1
2
2
2
原因如下:
a= i++;
则相当于 a=i;i=i+1; //alert i++ 时:相当于a=i,还是原值1。后面再alerti时相当于i=i+1了等于2.
a=++i;
则相当于 i=i+1;a=i;// alert ++i 时,相当于前面的i=i+1,所以就等于2了,而接着再alert i 时还是2.
________________________________________________________
都是i=i+1的意思,区别在于i++是i先不自加,在语句完后自加,++i先自加;
列如a=1+i++;i本来为1的话,这里a=1+1;语句完后i才加1为2;
a=1+++i的话就先i=i+1;i=2.然后a=i+1,a=3
直接使用看不出区别,都是变量i加1
在赋值时才能进行区别,
如:
y=i++ // y的值为i (先引用,后运算)
y=++i // y的值为i+1的结果 (先运算,后引用)
++i是在使用i之前先使i的值加1
i++是在使用i之后,使i的值加1
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/7696/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2014-12-19 16:45
评论列表