天天看點

JavaScript中運算符的運算規則

一、算術運算符

+号運算符:

①+号兩側都是數字類型 ,結果:求兩個數字的和。

例:

JavaScript中運算符的運算規則

②+号有一側是字元串類型或者是引用值時 其作用都是字元串拼接。

例:

JavaScript中運算符的運算規則

-号運算符:

①-号兩側都是數字類型 ,結果:求兩個數字的差;

JavaScript中運算符的運算規則

*号運算符:

*号兩側都是數字類型,結果:求兩個數字的積;

/号運算符:

/号兩側都是數字類型,結果:求兩個數字的商;

JavaScript中運算符的運算規則

%号運算符:

%号兩側都是數字類型,結果:求兩個數字的餘數(模);

JavaScript中運算符的運算規則

結論:除加号之外的運算符,其他運算符結果隻做對應的數學運算;

NaN和任何數任何進行運算都是等于NaN

二、一進制運算符

一進制運算符: +, - 該運算符隻操作一個資料。

例如:

  1. +2:正号,對一個數字取正,如果操作的是非數字類型 則會隐式轉換成數字類型。
  2. -2:負号,對一個數字取負, 如果操作的是非數字類型 則會隐式轉換成數字類型。

一進制運算符的優先級是高于算術運算符的。

三、自增運算符

①a++( 後加加)結果:

1.讓變量a在自動增加1

2. a++的結果是沒有改變之前的變量a

例:

JavaScript中運算符的運算規則

② ++a (前加加) 結果:

1.讓變量a在自動增加1

2. ++a的結果是改變之後的變量a

例:

JavaScript中運算符的運算規則

四、自減運算符

①a-- (後減減) 結果:

1.讓變量a在自動減少1

2. a–的結果是沒有改變之前的變量a

例:

JavaScript中運算符的運算規則

② --a (前減減)結果:

1.讓變量a在自動減少1

2. --a的結果是改變之後的變量a

例:

JavaScript中運算符的運算規則

五、比較運算符

① == ,判斷兩個資料是否相等 ,相等則結果是true ,不相等則是false。

運算過程:

  1. == 兩側都是原始值(非null undefined)時,會把==兩側的資料轉換成數字進行比較。
  2. null和undefined在==判斷時,結果總是false。
  3. == 兩側有一個是引用值,一個是字元串,會把==兩側的資料轉換成字元串進行比較。

    ==兩側有一個是引用值,一個是非字元串,會把 ==兩側的值轉換成數字進行比較。

  4. ==兩側都是引用值時 直接傳回false

②!= ,判斷兩個資料是否不相等,不相等則結果是true,反之結果是false。

③=== , 判斷兩個資料是否全等,全等則結果是true,反之結果是false。

JavaScript中運算符的運算規則

④!== ,判斷兩個資料是否不全等,不全等則結果是true,反之是false。

JavaScript中運算符的運算規則

⑤>、<, 比較兩個資料的大小:

規則:

字元串和字元串比較時,會按照字元串對應的unicode編碼值比較 (田忌賽馬)

六、邏輯運算符

①&& (與運算符):對兩側的布爾值進行與運算,結果兩側布爾值中的假值(false)。

運算規則如下:

  1. 如果符号兩側的值都是true ,則結果是true。
  2. 如果符号兩側的值有一個是false,則結果是false。
  3. 先找到false值就停止找下去了。
  4. 如果左右的值隐式轉換的結果為true,則取右邊的值。
JavaScript中運算符的運算規則

②|| (或運算符):對兩側的布爾值進行或運算, 結果是找到兩側布爾值中的真值(true)。

運算規則如下:

1.如果符号兩側的值有一個true,則結果是true。

2.如果符号兩側的值都是false,則結果是false。

3.先找到true值就停止找下去了。

JavaScript中運算符的運算規則

題目一:!!’’+!!" “-!!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

結論:&&優先級高于||。

繼續閱讀