![d5ad2652f57a3dd7a92eb6acc9f4d7d7.png](https://img-blog.csdnimg.cn/img_convert/d5ad2652f57a3dd7a92eb6acc9f4d7d7.png)
如题,像我这样老来多健忘唯不忘瞎掰的人,总在关键时刻掉链子——需要用到i++和++i的时候总瞬间失忆然后重翻笔记。。。
编个老故事,嫦娥奔月的诸多版本之一之抛夫独吞版:西王母赠与后裔一瓶长生不死的仙药,后裔交于女票嫦娥保管,在后裔外出的时候嫦娥偷偷拿出了仙药,出于强烈好奇心和青春不老欲望的她背着男友猴急服下了仙药,谁知竟扶摇直上飘飘然腾起朝月亮而去,此时回家的后裔看到升天成仙的女盆友却回天无力伸手触不可及,而嫦娥从此位列仙班常驻月宫却再也无法触及人间烟火,完。——此处手动分割线番外——其实这个傻姑娘不知道的是,后裔没来得及告诉她这个良药是可以放两人面前你我共享的,都可以满血多补一条命哒!
此时强行植入JS前置递增操作符记忆:
var i = 1, j = i++; //此时i是2,j是1(一方背过去偷偷服用则仅自己续命,另一方不变)
var m = 1, n = ++m; //此时m和n的值都是2(拿出来摆两人面前对饮则双方都多加一条命^_^)
![c2b2154e6f47a906a90c15a89cf27b82.png](https://img-blog.csdnimg.cn/img_convert/c2b2154e6f47a906a90c15a89cf27b82.png)
以上纯属杜撰瞎编完全没有深入分析原理,仅供寄己强行记忆前置递增(++i)与后置递增(i++)的区别,完。(前置递减与后置递减--同理:可以联想为毒药减命,一方背着偷服和两人搁面前一起玩完的区别)
记住了前置递增(减)与后置递增(减)的区别,让我们来实战测试一下:
如题,请问两个程序分别打印结果为什么?
var b = 5
while(b--) {
setTimeout(function() {
console.log(b)
}, 1000)
}
var c = 5
while(--c) {
setTimeout(function() {
console.log(c)
}, 2000)
}
答案:5个-1,4个0
解析:
轮数 b-- b 轮数 --c c
1 5 4 1 4 4
2 4 3 2 3 3
3 3 2 3 2 2
4 2 1 4 1 1
5 1 0 5 跳出 0 0
6 跳出 0 -1
![9c44de9bf91a8ae68239fb4ff3f73183.png](https://img-blog.csdnimg.cn/img_convert/9c44de9bf91a8ae68239fb4ff3f73183.png)