为了账号安全,请及时绑定邮箱和手机立即绑定

i++ 和++i的差別

i++ 和++i的差別

Be_Stronger 2016-08-27 00:27:11
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script><TITLE> New Document </TITLE><script>var countup = function(){  var $div = $('div'),    i = parseInt($div.text());  $div.html(++i);  setTimeout(countup, 1000);};countup();</script> </HEAD><body><div>0</div></body></HTML>假设我这边把++i换成i++,为什么就不会计时了,这是什么逻辑呢?
查看完整描述

8 回答

已采纳
?
stone310

TA贡献361条经验 获得超191个赞

a=++i,先让i+1,再赋值给a;a=++i,先将i赋值给a,再让i+1;

如上面这个例子,  先说++i的情况,

第一次循环:$div.html(++i)这句话之前,i=0,因此,先加1,再传递给html,所以html显示为1

第二次虚幻:因为刚才div的html为1了,所以$div.html(++i)这句话之前,i=1,再加1,再传递给html,显示2

所以++i是可以运行的;

i++的情况,

第一次循环:$div.html(++i)这句话之前,i=0,先将i=0传递给html,再加1,所以第一次循环结束时,html显示0,但是此时的i是1;

第二次循环:i是1,但是经过这句话i = parseInt($div.text()),i又变成了html的值(即0),然后又重复第一次循环,所以你看到一直是0;

你可以在  $div.html(++i);前后加上alert(i)进行测试

查看完整回答
1 反对 回复 2016-08-27
?
微积分2016

TA贡献53条经验 获得超69个赞

a=i++ 其实是 a=i;i++;
a=++i    其实是 i++;a=i;

查看完整回答
4 反对 回复 2016-08-27
?
ForDeer

TA贡献1条经验 获得超2个赞

相同点:

    i++和++i都是自增1.

不同点:

    ++i是先做i+1,再执行后面语句。(执行完本条语句i=i+1)

    i++是先执行完后面语句,才+1。(执行完后面语句i=i+1)

为什么不计时:

    可以理解为没有执行完后面语句,也就是循环未结束(无限循环)经过 i = parseInt($div.text()),i也是0。

什么逻辑:

    就是这个逻辑。

查看完整回答
2 反对 回复 2016-08-27
?
W_YYJ

TA贡献1条经验 获得超1个赞

++i 是先加后用,后面用的 i 加1后的值;  i++是先用后加,后面用的是还是原来的 i

查看完整回答
1 反对 回复 2016-08-28
?
咎咎咎

TA贡献2条经验 获得超2个赞

上面的答案都不严谨
a=i++是a=(i++的返回值)
a=++i是a=(++i的返回值)
i++返回i未自增之前的值
++i返回i自增后的值

查看完整回答
1 反对 回复 2016-08-28
?
chwech

TA贡献63条经验 获得超18个赞

开发时尽量避开两者之间的区别,只需知道,它们都是把 i 的值 加 1 即可。不要给自己找麻烦

查看完整回答
1 反对 回复 2016-08-27
?
大白__

TA贡献1条经验 获得超1个赞

唯一的区别:
++i,是在运算i之前给i先加1,在参加运算
i++,是参加完运算后给i加1

查看完整回答
1 反对 回复 2016-08-27
?
MarlboroKay

TA贡献189条经验 获得超236个赞

建议你看看慕课的C语言基础,看完应该就能明白了。

最简单一句话,++i,就是先加1,在赋值。i++,就是先赋值,再加1。

本身,他俩都是实现自增,但是放到循环中的话,就会有影响。

例如,你用了setTimeout()方法,如果换成i++的话,一秒后执行的结果是不变的。

建议,你把setTimeout()换成setInterval() 自己仔细体会一下。望采纳

查看完整回答
1 反对 回复 2016-08-27
  • 8 回答
  • 0 关注
  • 1986 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信