自加和自减以前没怎么用做返回值,今天在学习ES6的Generator的时候突然意识到a++和++a的区别:
function* abc(){
let a = 1;
yield a++;
}
let g = abc();
console.log(g.next());
以上打印结果为:1;
但是如果换成 yield ++a 的话,打印的结果是:2;
总结:++a和a++都是自加,其他地方都一样,但是当要把他们当作返回值来使用的话,略微有些许小的区别。
形式 ( a=1 ) | 结果 | 返回值 |
---|---|---|
a++ | 2 | 1 |
++a | 2 | 2 |
a- - | 0 | 1 |
- -a | 0 | 0 |