最近学习了js入门阶段,分享一下该阶段太多小白被绕的头晕的一元运算中的前置和后置。
一元运算符
++a:前置(先自加再运算)
a++:后置(先运算再自加)
- 初级
var k=0;
console.log(k++);//0
console.log(k);//1
var j=1;
console.log(++j);//2
console.log(j);//2
**注意:++后置中:在没有运算的情况下(例如:console.log(k++);)先把这个变量放在那儿,下一遇到它的时候它的值才是+1过后的值。
- 中级
var k=0;
console.log(k++ + ++k +k);//4
**运算过程:
k++ + ++k +k
0+ ++k +k;//此时k=1[++后置:先运算后自加,此时的k为自加后的值]
0+2+k;//此时k=1[++前置:先自加后运算,此时的k为自加后的值]
0+2+2;//结果为4
- 复杂
var k=1;
console.log(k++ + ++k + ++k +k++ +k++ +k);
**运算过程:
k++ + ++k + ++k +k++ +k++ +k
1+ ++K+ ++K+k++ +k++ +k//此时k=2[++后置:先运算后自加,此时的k为自加后的值]
1 + 3 + ++k+k++ +k++ +k//此时k=3[++前置:先自加后运算,此时的k为自加后的值]
1 + 3 + 4+k++ +k++ +k//此时k=4[++前置:先自加后运算,此时的k为自加后的值]
1 + 3 + 4+4 +k++ +k//此时k=5[++后置:先运算后自加,此时的k为自加后的值]
1 + 3 + 4+4 +5 +k//此时k=6[++后置:先运算后自加,此时的k为自加后的值]
1 + 3 + 4+4 +5 +6// 结果为23