JavaScript運算子


什麼是運算子?

簡單的答案可以使用表示式4+5等於9。在這裡,4和5被稱為運算元;+被稱為運算子。 JavaScript語言支援下列型別的運算子。

  • 算術運算子

  • 比較運算子

  • 邏輯(或關係)運算子

  • 賦值運算子

  • 有條件的(或三元)運算子

讓我們對所有運算子一個一個地來看看。

算術運算子:

JavaScript語言支援以下算術運算子:

假設變數A=10和變數B=20則:

運算子 描述 範例
+ 相加兩個運算元 A + B = 30
- 第一減去第二運算元 A - B = -10
* 相乘兩個運算元 A * B = 200
/ 通過分子除以分母 B / A = 2
% 模運算和整數除法後的餘 B % A = 0
++ 遞增操作,增加一個整數值 A++ = 11
-- 遞減操作,減少一個整數值 A-- = 9

註:加法運算子(+)適用於數位和字串。例如“a”+10將會得到“a10”。

 

比較運算子:

JavaScript語言支援以下比較運算子

假設變數A=10和變數B=20則:

運算子 描述 範例
== 檢查兩個運算元的值是否相等,如果是的話那麼條件為真 (A == B) 不為 true.
!= 檢查兩個運算元的值是否相等,如果值不相等,則條件變為真 (A != B) 為 true.
> 檢查左邊的運算元的值是否大於右運算元的值,如果是的話那麼條件為真 (A > B) 不為 true.
< 檢查左邊的運算元的值是否小於右運算元的值,如果是的話那麼條件為真 (A < B) 為 true.
>= 檢查左邊的運算元的值是否大於或等於右運算元的值,如果是的話那麼條件為真 (A >= B) 不為 true.
<= 檢查左邊的運算元的值是否小於或等於右運算元的值,如果是的話那麼條件為真 (A <= B) 為 true.

 

邏輯運算子:

JavaScript語言支援以下邏輯運算子

假設變數A=10和變數B=20則:

運算子 描述 範例
&& 所謂邏輯與操作。如果兩個運算元是非零那麼那麼的條件為true (A && B) 為 true.
|| 所謂的邏輯或操作。如果任何兩個運算元都非零然後再條件變為true (A || B) 為 true.
! 所謂邏輯非運算子。使用反轉運算元的邏輯狀態。如果條件為真,那麼邏輯非操作符的結果false !(A && B) 為 false.

 

位運算子:

JavaScript語言支援以下位運算子

假設變數A=2和變數B=3,則:

運算子 描述 範例
& 所謂的按位元與操作。它執行其整數引數的每一位布林與運算 (A & B)  =  2 .
| 所謂的按位元或操作符。它執行其整數引數的每一位布林或操作 (A | B)  =  3.
^ 所謂的按位元互斥或運算子。它執行布林互斥或運算,其整數引數的每個位。互斥或意味著一個運算元有一個為真或兩個運算元為true,但不能同時使用 (A ^ B)  = 1.
~ 所謂的按位元非操作符。這是一個是一元運算子和操作由扭轉運算元的所有位 (~B) = -4 .
<< 所謂的按位元左移運算。它移動的所有位在其第一個運算元向左的第二個運算元指定的位數。新的位用零填充。移一個位置剩下的值等效於乘以2,移位兩個位置相當於乘以4 (A << 1)  = 4.
>> 所謂的按位元右移帶符號的操作。它移動的所有位在其第一個運算元到右邊的第二個運算元指定的位數。在左邊填充在位元取決於原始運算元的符號位,在為了保持結果的符號。如果第一運算元是正的,其結果有放置在高位元零;如果第一運算元是負的,其結果有那些放置在高位元。移的值正確的地方,相當於除以2(捨去餘),右移兩個地方是相當於由4到整數除法,並依此類推 (A >> 1)  =  1.
>>> 所謂的按位元右移零操作。操作符與>>操作一樣,所不同的是位移在左側總是零 (A >>> 1)  = 1.

 

賦值運算子:

JavaScript語言支援以下賦值運算子:

運算子 描述 範例
= 簡單的賦值操作符,分配值從右邊的運算元左側的運算元 C = A + B 將分配A + B 的值到 C
+= ADD和賦值運算子,它增加了右運算元左運算元和分配結果左運算元 C += A 相等於 C = C + A
-= 減和賦值運算子,它減去右運算元從左側的運算元和分配結果左運算元 C -= A 相等於 C = C - A
*= 乘法和賦值運算子,它乘以右邊的運算元與左運算元和分配結果左運算元 C *= A 相等於 C = C * A
/= 相除賦值運算子,它把左運算元與右運算元和分配結果左運算元 C /= A 相等於 C = C / A
%= 模量和賦值運算子,它需要使用兩個運算元的模量和分配結果左運算元 C %= A 相等於 C = C % A

註:同樣的邏輯也適用於位運算子,它們就如 <<=, >>=, >>=, &=, |= and ^=.

其他運算子

條件運算子 (? :)

有一種叫做條件運算子。根據第一計算表示式為真或假的值,然後執行根據計算結果來計算給定兩個陳述中的一個。條件操作符的語法如下:

運算子 描述 範例
? : 條件表示式 如果條件為 true ? 那麼為X值 : 否則為 Y值

 

typeof 運算子

typeof是一元運算子是放置其單個運算元之前,它可以是任何型別。它的值是一個字串,指示運算元的資料型別。

typeof運算子的計算結果為"number", "string", 或 "boolean",如果運算元是數位,字串或布林值,並返回true或false的基礎上進行評估計算。下面是typeof運算子返回值的列表:

型別 返回 typeof 的字串
Number "number"
String "string"
Boolean "boolean"
Object "object"
Function "function"
Undefined "undefined"
Null "object"