1. 程式人生 > >JS運算符

JS運算符

計算過程 個數字 ron 正數 blog () 移動 下標 移位

  • 位移運算符 (>>)

    運算規則:按二進制形式把所有的數字向右移動對應的位數,低位移出(舍棄),高位的空位補符號位,即正數補零,負數補1當右移的運算數是byte和short類型時,將自動把這些類型擴大為 int 型。例如,如果要移走的值為負數,每一次右移都在左邊補1,如果要移走的值為正數,每一次右移都在左邊補0,這叫做符號位擴展(保留符號位)(sign extension ),在進行右移操作時用來保持負數的符號。

數學意義: 右移一位相當於除2,右移n位相當於除以2的n次方。

計算過程

例: 11 >> 2 (11為int型)

1) 11的二進制形式為:0000 0000 0000 0000 0000 0000 0000 1011

2) 把低位的最後兩個數字移出,因為該數字是正數,所以在高位補零。

3) 最終結果是0000 0000 0000 0000 0000 0000 0000 0010。
  轉換為十進制是2。

輸入: 1 << 1
輸出: 2
輸入: 1 << 2
輸出: 4
輸入: 1 << 3
輸出: 8
  • + - * /
    加減乘除四個運算符中, 其中 [ - * / ]具有==隱式轉換==特殊功效.

    ‘1‘ - 0 === 1 // true
    ‘1‘ / 1 === 1 // true
    ‘1‘ * 1 === 1 // true

    而 + 則不具有該功能, 因為 + 還有一個功能是拼接字符串, 如果兩個相加數有至少一個是String類型, 則結果依然為String類型

    ‘1‘ + 1 === ‘11‘ // true
    11 + 3 + ‘4‘ === 144 // true
  • js常用運算符的優先級

    以下優先級由上到下, 由左到右遞減

級別 運算符 描述
0 . [] () 字段訪問,下標,函數調用/表達式分組
1 ++ -- ! 遞加,遞減,非
2 * / % 乘,除,模
3 + - 加,減,字符串拼接
4 << >> 移位
5 < <= > >= 比較
6 == != === !== 等值判斷
7 && 邏輯與
8 | | 邏輯非
9 = 賦值

JS運算符