javascript - js “+ - ”怎么理解
PHP中文网
PHP中文网 2017-04-10 17:19:52
[JavaScript讨论组]

var a = 5;
console.log(a++); // 5
console.log(++a); // 7
console.log(a--); // 7
console.log(--a); // 5

1.这段代码有点儿不理解,为什么加减放前后会不一样呢,
2.为什么相差2呢,不是应该只加一或减一的吗,如果换成a+1,a-1 呢
3.而且平时我们比如在循环里也会用到 a++这种形式啊,如上面的结果,拿在循环体内就没用了咯?
求各位大神解释解释。。。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
大家讲道理

和 C/C++/Java 类似

  1. ++/--放在前面表示先做运算再返回值;放在后面则是先保存当前值,做运算后返回之前的保存值。(就这样理解就可以了,千万不要在一行里写一个以上的++或--!!!!
    所以a++得到的是原来a的值,在这之后读取a就可以得到+1后的值;++a得到的就是a自增后的值,至于++a + a a++ + a这种代码,我相信即使标准有定义,也不是我们应该写的。其实个人建议a++这类表达式还是单列一行写比较好,否则阅读代码时会造成一定的麻烦(循环的惯用法除外)。

  2. 回到问题本身,其实每一句之后加一个console.log(a);就好理解了

  3. 在 for 循环中,常见的写法其实是完全抛弃++/--运算的返回值了(只取其副作用),所以前后语义一样。

高洛峰

简单点说吧

++a;// 先加后用
a++;//先用后加

先加后用就是 a先加1,再使用a的值。
先用后加就是 先用a的值,然后a再+1

阿神

基础啊。

var b = a++;

等价于:

var b = a;
a = a + 1;
var b = ++a;

等价于:

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

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