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

赋值和变量的自增问题

赋值和变量的自增问题

萧十郎 2019-04-21 20:42:08
vari=1;i=i++;alert(i);为什么i=1?1.左边i先赋值给右边,i=1;2.i++,之后i不就是2了吗?就算不赋值,也应该是2额。。
查看完整描述

2 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

首先,赋值运算符=是把右边的值赋给左边。
然后,自增运算符“++”放在变量后面即i++的意思是先使用变量,再将变量i的值加1。如果放在变量前面即++i的意思是先将变量i的值加1,再使用变量
举例:
vari=1;
varj=i++;
alert(j);//1,先为j赋i的值1,
alert(i);//2,然后执行++,i的值加1,2
那么为什么你的代码结果i是1呢?
vari=1;
i=i++;
alert(i);//1
这是因为js中,变量的值是不能重新赋值的。重新为一个变量赋值,会申请一个新变量,为其赋值并销毁原来的变量。本例中,i=i++其实是先在内存中申请一个空间,里面填充1(i的值),然后让变量i指向这块内存空间,而存放这i++得来的2的那块内存,已经索引不到了,一会儿其所占内存就被回收了
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 319 浏览
慕课专栏
更多

添加回答

举报

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