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的那块内存,已经索引不到了,一会儿其所占内存就被回收了
添加回答
举报
0/150
提交
取消