JavaScript 運算子



什麼是運算子?

在 JavaScript 中,運算子是一個符號,它對一個或多個運算元(例如變數或值)執行操作並返回結果。讓我們來看一個簡單的表示式 4 + 5 等於 9。這裡 4 和 5 稱為運算元,而 ‘+’ 稱為運算子

JavaScript 支援以下型別的運算子。

  • 算術運算子
  • 比較運算子
  • 邏輯(或關係)運算子
  • 位運算子
  • 賦值運算子
  • 其他運算子

讓我們逐一看看所有運算子。

JavaScript 算術運算子

JavaScript 算術運算子用於對數字執行數學計算,例如加法、乘法、減法、除法等。JavaScript 支援以下算術運算子:

假設變數 x 為 10,變數 y 為 20,則:

運算子 描述 示例
+ (加法) 將兩個運算元相加。 x + y 將得到 30。
- (減法) 從第一個運算元中減去第二個運算元。 x - y 將得到 -10。
* (乘法) 將兩個運算元相乘。 x * y 將得到 200。
/ (除法) 將分子除以分母。 y / x 將得到 2。
% (模) 輸出整數除法的餘數。 y % x 將得到 0
++ (增量) 將整數的值增加一。 x++ 將得到 11。
-- (減量) 將整數的值減少一。 x-- 將得到 9。
加法運算子 (+) 既適用於數字也適用於字串。例如,"a" + 10 將得到 "a10"。

JavaScript 比較運算子

JavaScript 比較運算子比較兩個值並返回布林結果(truefalse)。JavaScript 支援以下比較運算子:

假設變數 x 為 10,變數 y 為 20,則:

運算子 描述 示例
== (等於) 檢查兩個運算元的值是否相等。如果是,則條件變為 true。 (x == y) 為 false。
!= (不等於) 檢查兩個運算元的值是否相等。如果值不相等,則條件變為 true。 (x != y) 為 true。
=== (嚴格等於) 它檢查變數的值和資料型別是否相等。如果是,則條件變為 true。 (x === y) 為 false。
!== (嚴格不等於) 它檢查變數的值和資料型別是否相等。如果值不相等,則條件為真。 (x !== y) 為真。
> (大於) 檢查左運算元的值是否大於右運算元的值。如果是,則條件為真。 (x > y) 為假。
< (小於) 檢查左運算元的值是否小於右運算元的值。如果是,則條件為真。 (x < y) 為真。
>= (大於或等於) 檢查左運算元的值是否大於或等於右運算元的值。如果是,則條件為真。 (x >= y) 為假。
<= (小於或等於) 檢查左運算元的值是否小於或等於右運算元的值。如果是,則條件為真。 (x <= y) 為真。

JavaScript 邏輯運算子

邏輯運算子通常用於對布林值執行邏輯運算。但是邏輯運算子可以應用於任何型別的值,而不僅僅是布林值。

JavaScript 支援以下邏輯運算子:

假設x的值為 10,y的值為 0。

運算子 描述 示例
&& (邏輯與) 如果兩個運算元都不為零,則條件為真。 (x && y) 為假
|| (邏輯或) 如果兩個運算元中任何一個不為零,則條件為真。 (x || y) 為真。
! (邏輯非) 反轉其運算元的邏輯狀態。如果一個條件為真,則邏輯非運算子將使其為假。 !x 為假。

JavaScript 位運算子

JavaScript 位運算子用於對整數執行位級運算。JavaScript 支援以下七種位運算子:

假設變數 x 為 2,變數 y 為 3,則:

運算子 描述 示例
& (按位與) 它對每個整數引數的每一位執行布林 AND 運算。 (x & y) 為 2。
| (按位或) 它對每個整數引數的每一位執行布林 OR 運算。 (x | y) 為 3。
^ (按位異或) 它對每個整數引數的每一位執行布林異或運算。異或意味著運算元一或運算元二為真,但兩者不能同時為真。 (x ^ y) 為 1。
~ (按位非) 它是一個一元運算子,透過反轉運算元中的所有位來操作。 (~y) 為 -4。
<< (左移) 它將第一個運算元中的所有位向左移動第二個運算元中指定的位置數。新的位用零填充。將值左移一位相當於將其乘以 2,左移兩位相當於將其乘以 4,依此類推。 (x << 1) 為 4。
>> (右移) 二進位制右移運算子。左運算元的值向右移動由右運算元指定的位數。 (x >> 1) 為 1。
>>> (用零填充的右移) 此運算子類似於 >> 運算子,不同之處在於左側移入的位始終為零。 (x >>> 1) 為 1。

JavaScript 賦值運算子

在 JavaScript 中,賦值運算子用於向變數賦值。JavaScript 支援以下賦值運算子:

運算子 描述 示例
= (簡單賦值) 將值從右運算元賦值給左運算元 z = x + y 將 x + y 的值賦給 z
+= (加法賦值) 它將右運算元新增到左運算元,並將結果賦給左運算元。 z += x 等價於 z = z + x
-= (減法賦值) 它從左運算元中減去右運算元,並將結果賦給左運算元。 z -= x 等價於 z = z - x
*= (乘法賦值) 它將右運算元乘以左運算元,並將結果賦給左運算元。 z *= x 等價於 z = z * x
/= (除法賦值) 它將左運算元除以右運算元,並將結果賦給左運算元。 z /= x 等價於 z = z / x
%= (取模賦值) 它使用兩個運算元進行取模運算,並將結果賦給左運算元。 z %= x 等價於 z = z % x
位運算子也應用相同的邏輯,因此它們將變為 <<=、>>=、>>>=、&=、|= 和 ^=。

JavaScript 其他運算子

JavaScript 還支援一些其他運算子。這些運算子包括條件運算子 (? :)、typeof 運算子、delete 運算子等。

在下表中,我們給出了 JavaScript 其他運算子及其說明。

運算子 描述
? : (條件) 如果條件為真?則值為 X:否則值為 Y
typeof 它返回運算元的資料型別。
?? (空值合併運算子) 當其左側運算元為 null 或 undefined 時,它返回其右側運算元;否則,返回其左側運算元。
delete 它從物件中刪除屬性。
, (逗號) 它評估其運算元(從左到右),並返回最後一個運算元的值。
() (分組) 它允許更改運算子的優先順序。
yield 它用於暫停和恢復生成器函式。
… (擴充套件) 它用於擴充套件可迭代物件,例如陣列或字串。
** (指數) 將左運算元提高到右運算元的冪
廣告