JavaScript自增(++)、自减(--)运算符的理解
JavaScript自增、自减运算符与表达式语法
表达式语法:
var i++; var 声明变量 i 变量名 ++ -- 自增运算符
JavaScript自增、自减运算符与表达式(i初始值为1) |
||||
运算符 |
++i |
--i |
i++ |
i-- |
名称 |
前自增运算符 |
前自减运算符 |
后自增运算符 |
后自减运算符 |
表达式 |
++i |
--i |
i++ |
i-- |
示例 |
++i; |
--i; |
i++; |
i--; |
i的结果 |
2 |
0 |
1 |
1 |
有趣的示例 |
var i=1 console.log(i) console.log(++i) console.log(i) |
var i=1 console.log(i) console.log(--i) console.log(i) |
var i=1 console.log(i) console.log(i++) console.log(i) |
var i=1 console.log(i) console.log(i--) console.log(i) |
结果 |
1 2 2 |
1 0 0 |
1 1 2 |
1 1 0 |
示例解释
前自增运算符与后自增运算符有本质的区别:
相同点:都是为自身加1
不同点:前自增运算符是先加1,再使用操作数的值;
后自增运算符是先使用操作数的值,再加1。
例子 1:
var a; var i=1;
//(前加加) i 加 1 后,i 等于 2,并将 i 值赋予 a,于是 a 等于 2 // 如果++在前面,则先自身加1,然后再参与运算 a=++i; document.write(i);//结果是:2 document.write(a);//结果是:2
var b; var j=1; //(后加加)将 j 值赋予 b,于是 b 等于 1,最后 j 加 1,j 等于 2 // 如果++在后面,则先参与运算,自身再加1 b=j++; document.write(j);//结果是:2 document.write(b);//结果是:1
例子 2:
++ 在前面
<script> var num = 1 // 如果++在前面,则先自身加1,然后再参与运算 console.log(++num)// 先自身加1:1+1=2 2赋值给了num,所以num=2,结果就是:2 console.log(++num)// 先自身加1:2+1=3 3赋值给了num,所以num=3,结果就是:3 console.log(++num)// 先自身加1:3+1=4 4赋值给了num,所以num=4,结果就是:4 console.log(++num)// 先自身加1:4+1=5 5赋值给了num,所以num=5,结果就是:5 console.log(++num)// 先自身加1:5+1=6 6赋值给了num,所以num=6,结果就是:6 </script> <script> var num1 = 1 // 如果++在前面,则先自身加1,然后再参与运算 console.log(++num1 + 1)// 先自身加1:1+1=2 2赋值给了num,所以num=2,然后参与运算:2+1=3 console.log(++num1 + 2)// 先自身加1:2+1=3 3赋值给了num,所以num=3,然后参与运算:3+2=5 console.log(++num1 + 3)// 先自身加1:3+1=4 4赋值给了num,所以num=4,然后参与运算:4+3=7 console.log(++num1 + 4)// 先自身加1:4+1=5 5赋值给了num,所以num=5,然后参与运算:5+4=9 console.log(++num1 + 5)// 先自身加1:5+1=6 6赋值给了num,所以num=6,然后参与运算:6+5=11 </script> <script> var num2 = 1 // 如果++在前面,则先自身加1,然后再参与运算 console.log(++num2 + 2)// 先自身加1:1+1=2 2赋值给了num,所以num=2,然后参与运算:2+2=4 console.log(++num2 + 3)// 先自身加1:2+1=3 3赋值给了num,所以num=3,然后参与运算:3+3=6 console.log(++num2 + 4)// 先自身加1:3+1=4 4赋值给了num,所以num=4,然后参与运算:4+4=8 console.log(++num2 + 5)// 先自身加1:4+1=5 5赋值给了num,所以num=5,然后参与运算:5+5=10 console.log(++num2 + 6)// 先自身加1:5+1=6 6赋值给了num,所以num=6,然后参与运算:6+6=12 </script>
++ 在后面
<script> var num = 1 // 如果++在后面,则先参与运算,自身再加1 console.log(num++)// 先参与运算,num++ = 1 , 自身加 1 得出 2;赋值给 num, num=2 console.log(num++)// 先参与运算,num++ = 2 , 自身加 1 得出 3;赋值给 num, num=3 console.log(num++)// 先参与运算,num++ = 3 , 自身加 1 得出 4;赋值给 num, num=4 </script> <script> var num1 = 1 // 如果++在后面,则先参与运算,自身再加1 console.log(num1++ + 1)// 先参与运算:1+1=2;自身加1得出:2,赋值给 num, num=2 console.log(num1++ + 2)// 先参与运算:2+2=4;自身加1得出:3,赋值给 num, num=3 console.log(num1++ + 3)// 先参与运算:3+3=6;自身加1得出:4,赋值给 num, num=4 </script> <script> var num2 = 1 // 如果++在后面,则先参与运算,自身再加1 console.log(num2++ + 2)// 先参与运算:1+2=3;自身加1得出:2; 赋值给 num, num=2 console.log(num2++ + 3)// 先参与运算:2+3=5;自身加1得出:3; 赋值给 num, num=3 console.log(num2++ + 4)// 先参与运算:3+4=7;自身加1得出:4; 赋值给 num, num=4 </script>
--在前面
<script> var num = 1 // 如果--在前面,则先自身减1,然后再参与运算 console.log(--num)// 先自身减1;1-1=0 0赋值给了num,所以num=0,结果就是:0 console.log(--num)// 先自身减1;0-1=-1 -1赋值给了num,所以num=-1,结果就是:-1 console.log(--num)// 先自身减1;-1-1=-2 -2赋值给了num,所以num=-2,结果就是:-2 console.log(--num)// 先自身减1;-2-1=-3 -3赋值给了num,所以num=-3,结果就是:-3 console.log(--num)// 先自身减1;-3-1=-4 -4赋值给了num,所以num=-4,结果就是:-4 </script> <script> var num1 = 1 // 如果--在前面,则先自身减1,然后再参与运算 console.log(--num1 - 1)// 先自身减1;1-1=0 0赋值给了num,所以num=0, 然后参与运算: 0-1=-1 console.log(--num1 - 2)// 先自身减1;0-1=-1 -1赋值给了num,所以num=-1, 然后参与运算:-1-2=-3 console.log(--num1 - 3)// 先自身减1;-1-1=-2 -2赋值给了num,所以num=-2, 然后参与运算:-2-3=-5 console.log(--num1 - 4)// 先自身减1;-2-1=-3 -3赋值给了num,所以num=-3, 然后参与运算:-3-4=-7 console.log(--num1 - 5)// 先自身减1;-3-1=-4 -4赋值给了num,所以num=-4, 然后参与运算:-4-5=-9 </script> <script> var num2 = 1 // 如果--在前面,则先自身减1,然后再参与运算 console.log(--num2 - 2)// 先自身减1;1-1=0 0赋值给了num,所以num=0, 然后参与运算: 0-2=-2 console.log(--num2 - 3)// 先自身减1;0-1=-1 -1赋值给了num,所以num=-1, 然后参与运算:-1-3=-4 console.log(--num2 - 4)// 先自身减1;-1-1=-2 -2赋值给了num,所以num=-2, 然后参与运算:-2-4=-6 console.log(--num2 - 5)// 先自身减1;-2-1=-3 -3赋值给了num,所以num=-3, 然后参与运算:-3-5=-8 console.log(--num2 - 6)// 先自身减1;-3-1=-4 -4赋值给了num,所以num=-4, 然后参与运算:-4-6=-10 </script>
--在后面
<script> var num = 1 // 如果--在后面,则先参与运算,自身再减1 console.log(num--)// 先参与运算,num-- = 1 , 自身减 1 得出 0;赋值给 num, num=0 console的结果是 1 console.log(num--)// 先参与运算,num-- = 0 , 自身减 1 得出 -1;赋值给 num, num=-1 console的结果是 0 console.log(num--)// 先参与运算,num-- = -1 , 自身减 1 得出 -2;赋值给 num, num=-2 console的结果是 -1 </script> <script> var num1 = 1 // 如果--在后面,则先参与运算,自身再减1 console.log(num1-- - 1)// 先参与运算:1-1=0;自身减1得出:0,赋值给 num, num=0 console的结果是:0 console.log(num1-- - 2)// 先参与运算:0-2=-2;自身减1得出:-1,赋值给 num, num=-1 console的结果是:-2 console.log(num1-- - 3)// 先参与运算:-1-3=-4;自身减1得出:-2,赋值给 num, num=-2 console的结果是:-4 console.log(num1-- - 4)// 先参与运算:-2-4=-6;自身减1得出:-3,赋值给 num, num=-3 console的结果是:-6 console.log(num1-- - 5)// 先参与运算:-3-5=-8;自身减1得出:-4,赋值给 num, num=-4 console的结果是:-8 </script> <script> var num2 = 1 // 如果--在后面,则先参与运算,自身再减1 console.log(num2-- - 2)// 先参与运算:1-2=-1;自身减1得出:0; 赋值给 num, num=0 console的结果是:-1 console.log(num2-- - 3)// 先参与运算:0-3=-3;自身减1得出:-1; 赋值给 num, num=-1 console的结果是:-3 console.log(num2-- - 4)// 先参与运算:-1-4=-5;自身减1得出:-2; 赋值给 num, num=-2 console的结果是:-5 console.log(num2-- - 5)// 先参与运算:-2-5=-7;自身减1得出:-3; 赋值给 num, num=-3 console的结果是:-7 console.log(num2-- - 6)// 先参与运算:-3-6=-9;自身减1得出:-4; 赋值给 num, num=-4 console的结果是:-9 </script>
如果有什么问题,请在评论区或者私聊告诉我,方便我修改!