一、算術運算符
+号運算符:
①+号兩側都是數字類型 ,結果:求兩個數字的和。
例:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL4cDN4EzN0YTM1AjNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
②+号有一側是字元串類型或者是引用值時 其作用都是字元串拼接。
例:
-号運算符:
①-号兩側都是數字類型 ,結果:求兩個數字的差;
*号運算符:
*号兩側都是數字類型,結果:求兩個數字的積;
/号運算符:
/号兩側都是數字類型,結果:求兩個數字的商;
%号運算符:
%号兩側都是數字類型,結果:求兩個數字的餘數(模);
結論:除加号之外的運算符,其他運算符結果隻做對應的數學運算;
NaN和任何數任何進行運算都是等于NaN
二、一進制運算符
一進制運算符: +, - 該運算符隻操作一個資料。
例如:
- +2:正号,對一個數字取正,如果操作的是非數字類型 則會隐式轉換成數字類型。
- -2:負号,對一個數字取負, 如果操作的是非數字類型 則會隐式轉換成數字類型。
一進制運算符的優先級是高于算術運算符的。
三、自增運算符
①a++( 後加加)結果:
1.讓變量a在自動增加1
2. a++的結果是沒有改變之前的變量a
例:
② ++a (前加加) 結果:
1.讓變量a在自動增加1
2. ++a的結果是改變之後的變量a
例:
四、自減運算符
①a-- (後減減) 結果:
1.讓變量a在自動減少1
2. a–的結果是沒有改變之前的變量a
例:
② --a (前減減)結果:
1.讓變量a在自動減少1
2. --a的結果是改變之後的變量a
例:
五、比較運算符
① == ,判斷兩個資料是否相等 ,相等則結果是true ,不相等則是false。
運算過程:
- == 兩側都是原始值(非null undefined)時,會把==兩側的資料轉換成數字進行比較。
- null和undefined在==判斷時,結果總是false。
-
== 兩側有一個是引用值,一個是字元串,會把==兩側的資料轉換成字元串進行比較。
==兩側有一個是引用值,一個是非字元串,會把 ==兩側的值轉換成數字進行比較。
- ==兩側都是引用值時 直接傳回false
②!= ,判斷兩個資料是否不相等,不相等則結果是true,反之結果是false。
③=== , 判斷兩個資料是否全等,全等則結果是true,反之結果是false。
④!== ,判斷兩個資料是否不全等,不全等則結果是true,反之是false。
⑤>、<, 比較兩個資料的大小:
規則:
字元串和字元串比較時,會按照字元串對應的unicode編碼值比較 (田忌賽馬)
六、邏輯運算符
①&& (與運算符):對兩側的布爾值進行與運算,結果兩側布爾值中的假值(false)。
運算規則如下:
- 如果符号兩側的值都是true ,則結果是true。
- 如果符号兩側的值有一個是false,則結果是false。
- 先找到false值就停止找下去了。
- 如果左右的值隐式轉換的結果為true,則取右邊的值。
②|| (或運算符):對兩側的布爾值進行或運算, 結果是找到兩側布爾值中的真值(true)。
運算規則如下:
1.如果符号兩側的值有一個true,則結果是true。
2.如果符号兩側的值都是false,則結果是false。
3.先找到true值就停止找下去了。
題目一:!!’’+!!" “-!!false)&&null
運算過程:
1. (false+true-false)&&null
2. (0+1-0)&&null
3. 1&&null
4. null
題目二: (!!’’+!!” "-!!false)||[1,2]&&null
運算過程:
1. (false+true-false)&&null
2. 2. (0+1-0)&&null
3. 1||[1,2]&&null
4. 1||null
5. 1
結論:&&優先級高于||。