<script>//逻辑运算符_运算顺序(同种从左往右;综合:非→与→或)var n =undefined&&null||123&&!0;
console.log(n);//true</script>
分步解析如下:
<script>var yi =!0;
console.log(yi);//truevar er =123&&true;
console.log(er);//truevar san =undefined&&null;
console.log(san);//undedinedvar last = san || er ;
console.log(last);// true</script>
<script>//赋值运算符var a =5;
console.log(a);//5var b ;
console.log(b);//undedined
b +=6;//b = b+6 = undefined+6 = NaN+6 = NaN
console.log(b);//NaNvar c =9;
c -=2;//c = c-2 = 9-2 = 7
console.log(c);//7var d =2;
d *=7;//d = d*7 = 2*7= 14
console.log(d);//14var e =9;
e /=9;//e= e/9 = 9/9 = 1
console.log(e);//1var f =10;
f %=4;//f = 10%4 = 2
console.log(f);//2</script>
六、一元运算符
1.介绍
++ 、-- 、!也叫一元运算符,因为只有一个操作数。
++ 或 -- 符号可以写在变量前和变量后面,位置不同可能导致程序运行结果不同,如下举例:
2.举例(以++符号为例)
(1) ++符号在变量之前,先自加,后参与
如下举例++g,++g 在参与过程中整体就使用 g加 1 之后的新值,使用完后第二次用 g 变量时,g 用的也是加 1 的新值。
<script>//一元运算符 //++在前,举例,(先自加,后参与)var g =1;
console.log(++g);//2
console.log(g);//2</script>
(2) ++ 符号在变量之后,先参与,后自加
如下举例 h++,h++ 在参与程序过程中使用的原始没有加 1 的值,使用完后第二次用 h 变量时,h用的就是加 1 后的新值。
<script>//++在后,举例(先参与,后自加)var h =1;
console.log(h++);//1
console.log(h);//2</script>
(3)综合举例
<script>var a =10,
b =20,
c =30;var num = a+++++b + c+++++a;//num=10+21+30+12
console.log(num);//73</script>
七、运算优先级/综合运算顺序
1.介绍
优先级从先到后
运算符种类
具体符号
1
算术运算符(部分)
()
2
一元运算符(部分赋值运算符/逻辑运算符)
++ 、--、 !
3
算数运算符(部分)
先* 、/ 、% 、后 + 、-
4
关系运算符(部分)
先> 、>= 、< 、<=
5
关系运算符(部分)
后 ==、 != 、=== 、!==
6
逻辑运算符(部分)
先&& 后`
7
赋值运算符(部分)
= 、 +=、-=、*=、/=、%=
2. 举例
下例就是按照以上运算优先级/综合运算顺序来计算的:
<script>var a =4;var num =1*(2+3)&&++a ||5>6&&7<8||!9;
console.log(num);//5</script>
如下详细过程:
<script>//①() ②一元运算符++ 、--、 !var num =1*5&&5||5>6&&7<8||false;// ③算术运算符(部分)先*/% 、后+-var num =5&&5||5>6&&7<8||false;// ④关系运算符,先>、>=、<、<= ;⑤关系运算符 后==、 != 、=== 、!==var num =5&&5||false&&true||false;//⑥逻辑运算符(部分) ,先&&var num =5||false||false;//⑥逻辑运算符(部分) ,后||var num =5||false;var num =5;</script>