| 運算子 | 描述 | 範例 |
|---|
取餘數 (en-US) (%) | 二元運算子。回傳兩個運算元相除後的餘數。 | 12 % 5 回傳 2. |
增加 (en-US) (++) | 一元運算子。 將運算元增加 1。假如使用在運算元之前 (++x),會運算元回傳增加 1 後的值;假如使用在運算元之後。 (x++), 會回傳運算元加 1 前的值。 | 假如 x是 3,那 ++x 將把 x 設定為 4 並回傳 4,而 x++ 會回傳 3 , 接著才把 x 設定為 4。 |
減少 (en-US) (--) | 一元運算子。 將運算元減少 1。回傳值的情況與 增加運算元 相同。 | 假如 x是 3,那 --x 將把 x 設定為 2 並回傳 2,而 x-- 會回傳 3 , 接著才把 x 設定為 2。 |
(一元運算子)減號 (en-US) (-) | 一元運算子。回傳運算元的負數。 | 假如 x 是 3,-x 回傳 -3。 |
(一元運算子)加號 (en-US) (+) | 一元運算子。嘗試將運算元轉換成數字,假如它還不是數字的話。 | +"3" 回傳 3。 +true 回傳 1. |
指數運算子 (en-US) (**) 實驗性質 | 計算以 a 為底的 b 次方, 也就是, a^b | 2 ** 3 回傳 8. 10 ** -1 回傳 0.1. |
位元邏輯運算子
| 運算式 | 結果 | 二元描述式 |
|---|
15 & 9 | 9 | 1111 & 1001 = 1001 |
15 | 9 | 15 | 1111 | 1001 = 1111 |
15 ^ 9 | 6 | 1111 ^ 1001 = 0110 |
~15 | -16 | ~ 0000 0000 … 0000 1111 = 1111 1111 … 1111 0000 |
~9 | -10 | ~ 0000 0000 … 0000 1001 = 1111 1111 … 1111 0110 |
位元移動運算子
| 運算子 | 描述 | 範例 |
|---|
左移 (en-US) (<<) | 這個運算子會將第 一個運算元的每個 bit 向左移動 第二個運算元所指定的 bit 數量。左邊超出的位數會被捨棄,右邊空出的位數以 0 補齊。 | 9<<2 得到 36,因為 1001 向左移動 2 bits 會得到 100100, 也就是二進位的 36。 |
有號右移 (en-US) (>>) | 這個運算子會將第 一個運算元的每個 bit 向右移動 第二個運算元所指定的 bit 數量。右邊超出的位數會被捨棄,左邊空出的位數以最高位補齊。 | 9>>2 得到 2,因為 1001 向右移動 2 bits 會得到 10,也就是二進位的 2。 相同的, -9>>2 會得到 -3,因為最高位用來表示正負號的 bit 被保留了。 |
以 0 填充的右移 (en-US) (>>>) | 這個運算子會將第 一個運算元的每個 bit 向右移動 第二個運算元所指定的 bit 數量。右邊超出的位數會被捨棄,左邊空出的位數以 0 補齊。 | 19>>>2 得到 4, 因為 10011 向右移動 2 bits 會得到 100,是二進位的 4。對於非負的數字而言, 以 0 填充的右移 會得到和 有號右移相同的結果。 |
| Operator | Usage | Description |
|---|
邏輯 AND (en-US) (&&) | 運算式1 && 運算式2 | 假如 運算式1 可以被轉換成 false 的話,回傳 運算式1; 否則,回傳 運算式2。 因此,&&只有在 兩個運算元都是 True 時才會回傳 True,否則回傳 false。 |
邏輯 OR (en-US) (||) | 運算式1 || 運算式2 | 假如 運算式1 可以被轉換成 true 的話,回傳 運算式1; 否則,回傳 運算式2。 因此,||在 兩個運算元有任一個是 True 時就會回傳 True,否則回傳 false。 |
邏輯 NOT (en-US) (!) | !運算式 | 假如單一個運算元能被轉換成 True 時,回傳false , 不然回傳 true。 |
參考資料:https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Guide/Expressions_and_operators
Comments