javascript - 自增i++的疑问?
PHP中文网
PHP中文网 2017-04-10 18:06:42
[JavaScript讨论组]

直接上代码了,

var j = 0;
for(var i = 0;i<5;i++){
    j = j ++;
}

console.log(j);

请问输出多少呢?为什么?

PHP中文网
PHP中文网

认证0级讲师

全部回复(6)
天蓬老师

j ++; 这个表达式的值还是j 所以你这赋值语句根本没用 可以这样写 j=++j 就是你要的结果了

黄舟

0.
j++ 就是后自增
j = j++ 整个过程是这样的
先执行右边的,j++,在当个语句中j是不自增的
所以 j = 0
如此循环,还是0

如果换成表达式是
j++

结果就是5了

迷茫

答案是0 因为 j = j++;
实际上你做了无效功,var a = j++var a = ++j 效果是有区别的执行完后第一个为a=0第二个为a=1楼主先弄懂j++ 和 ++j的区别就很好理解答案了

天蓬老师

j = j++;没效果啊,直接j++;不就好了

大家讲道理

操作符优先级问题。
是j++先自增 再用等号赋值。
还是先赋值以后再自增。

结果是前者。等号右边的表达先计算

伊谢尔伦

你这样是先执行了j=j,然后再执行j++,所以即使无限循环j还是0

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号