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" |