JS運算符
阿新 • • 發佈:2017-11-21
計算過程 個數字 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運算符