JavaScript的递增递减运算符前置和后置,我一开始其实是以为没区别的,但是当时老师出了个这个题,做起来很难受。
for ( var a = 1 , b = 0 ; a < b ; a ++ ){
b = a ;
}
console . log ( b );

大概题就是这么个题,现在看应该是我错了,我当时以为老师出错题了。后来发现还是我太年轻。
所以来说一下递增递减运算符前置和后置都有什么区别,其实一般来说,没有什么区别。
我们可以先定义a = 1;然后分别输出++a和a++,看一下效果。
var a = 1 ;
console . log ( ++ a );
var a = 1 ;
console . log ( a ++ );

javascript递增递减运算符前置后置的区别

可以看到,他们是有区别的,这是为什么呢?
按照我的理解,应该是它如果读取的是+号会向后继续读取,而读取的是a的话,那么会直接输出a而不管后面的内容了。

运算符描述
. [] ()字段访问、数组下标、函数调用以及表达式分组
++ -- - ~ ! delete new typeof void一元运算符、返回数据类型、对象创建、未定义值
* / %乘法、除法、取模
+ - +加法、减法、字符串连接
<< >> >>>移位
< <= > >= instanceof小于、小于等于、大于、大于等于、instanceof
== != === !==等于、不等于、严格相等、非严格相等
&按位与
^按位异或
|按位或
&&逻辑与
||逻辑或
?:条件
= oP=赋值、运算赋值
,多重求值
前置型简单理解就是先计算再赋值 后置型简单理解就是先赋值再计算

之所以他们有区别,究其根本还是因为运算符的优先级有区别。

我们可以看到后置运算的优先级是大于前置的,所以前置是先运算再传值,而后置是先传值再运算。其实也就是我前面所说的,++在前面,所以我们先运算然后再传值,而++在后面的话,我们就先传值再运算。并且其实后置的话,并非不进行运算了,只是如果想要看到效果的话,需要改一下前面的代码。
var a = 1 ; console . log ( a ++ );
console . log ( ++ a );

可以看到结果为第二个结果为3,所以其实只是不显示而已,并非不执行。

最后修改:2021 年 04 月 19 日 07 : 41 PM
如果觉得我的文章对你有用,请随意赞赏