黑马程序员技术交流社区

标题: 递增运算符前置后置区别 [打印本页]

作者: 小江哥    时间: 2020-1-10 17:23
标题: 递增运算符前置后置区别
递增运算符前置后置区别看如下两段代码var num1 = 2;
var num2 = 20;
var num3 = --num1 +num2;
var num4 = num1 + num2;
console.log(num1 +'-' + num2 +'-'+ num3 +'-' + num4)
将四个数分别打印是多少?
var num1 = 2;
var num2 = 20;
var num3 = num1-- + num2;
var num4 = num1 + num2;
console.log(num1 +'-' + num2 +'-'+ num3 +'-' + num4)
这里打印所得结果又是什么?
递增运算符和递减运算符
js中递增运算符是 ++ ,递减运算符是 --。 递增运算符就是将变量 +1, 递减运算符就是让变量 -1, 但前置和后置结果是不一样的。
前置型递增(递减)
前置型简单理解就是先计算再赋值。如下:
var a = 1;
var b = ++a;
console.log(a); // 2
console.log(b); // 2
上列表达式可以理解为:
var a = 1;
a = a + 1;
var b = a;后置型递增(递减)
后置型简单理解就是先赋值再计算。如下:
var a = 1;
var b = a++;
console.log(a); // 2
console.log(b); // 1原理
前置和后置型运算符之所以有上面的区别,是因为运算符的优先级。在各运算符按照优先级的不同由高到低排列顺序中:
所以,++和--会优先于=执行。但是这边我自己也还有个疑问,前置型的还可以用优先级解释,但是后置型的怎么解释呢,讲道理它也比=的优先级高啊,这个我还有点疑问。
然后根据MDN上对递增(++)的解释:
根据这个解释,在例子中
var a = 1;
console.log(a++)  //1
a++实际上是等于a递增之前的数值的,也就是1,这个在开发中容易被忽略,要谨记。
总结
回到最上面的代码,第一段代码分别会打印:1-20-21-21,第二段代码会打印:1-20-22-21
我们开发中需要记住的是:前置型是先计算再返回数值,后置型是先返回数值再计算。


       
       






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2