JavaScript运算符优先级——"++,--,&&,||“

时间:2022-02-22 22:37:04

上篇文章比较了"?,="三者的优先级:"?">"=">","
今天继续学习"++,--,&&,||"四者的优先级,强化JavaScript运算符基础。
首先上图一张,运算符的比较:
JavaScript运算符优先级——"++,--,&&,||“

结论:

1.优先级:"++,--">"&&">"||"

2.即时性:++,--操作符里面的变量计算时候具有即时性。例如a=0,a++,那么a++结果是0,a是1.


||和&&是截断操作符,对||来说,前面成立后面就不用计算,对&&来说前面不成立后面就不会计算

例如:var a=b=c=0;
++a||++b:  ++a的值为1,所以++b不执行,a=1,b=0;

++a&&++b:  ++a值为1,再计算++b,a=1,b=1;

++a||++b&&++c,&&优先级低于||,先计算++a,a=1后面执行a=1,b=0,c=0.

下面我们看一个复杂的例题:

var  a =1 ,b =0;
var c =  a-- && b++ || a++ && b-- || b++;
alert(a);
alert(b);
alert(c);

结果是:a=1,b=2,c=1

结计算过程详解:

1.c原式相当于:(a--) && (b++) || (a++) && (b--) || (b++);

2.计算到第3位时候注意:此时全式变为:1(a为0)&&0(b为1)||0(a为1)&&(b--)(0&&any特点,不用计算这位,b仍为1)||1(该位是在第2个&&计算完之后,开始计算的,所以b变为2),即1&&0||0&&(b--)||1

3.a=1,b=2,c=1