簡單的答案可以使用表達(dá)式4+5等于9。在這里,4和5被稱為操作數(shù);+被稱為運(yùn)算符。 JavaScript語言支持下列類型的運(yùn)算符。
算術(shù)運(yùn)算符
比較運(yùn)算符
邏輯(或關(guān)系)運(yùn)算符
賦值運(yùn)算符
有條件的(或三元)運(yùn)算符
讓我們對所有運(yùn)算符一個(gè)一個(gè)地來看看。
JavaScript語言支持以下算術(shù)運(yùn)算符:
假設(shè)變量A=10和變量B=20則:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| + | 相加兩個(gè)操作數(shù) | A + B = 30 |
| - | 第一減去第二操作數(shù) | A - B = -10 |
| * | 相乘兩個(gè)操作數(shù) | A * B = 200 |
| / | 通過分子除以分母 | B / A = 2 |
| % | 模運(yùn)算和整數(shù)除法后的余 | B % A = 0 |
| ++ | 遞增操作,增加一個(gè)整數(shù)值 | A++ = 11 |
| -- | 遞減操作,減少一個(gè)整數(shù)值 | A-- = 9 |
注:加法運(yùn)算符(+)適用于數(shù)字和字符串。例如“a”+10將會(huì)得到“a10”。
JavaScript語言支持以下比較運(yùn)算符
假設(shè)變量A=10和變量B=20則:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| == | 檢查兩個(gè)操作數(shù)的值是否相等,如果是的話那么條件為真 | (A == B) 不為 true. |
| != | 檢查兩個(gè)操作數(shù)的值是否相等,如果值不相等,則條件變?yōu)檎?/td> | (A != B) 為 true. |
| > | 檢查左邊的操作數(shù)的值是否大于右操作數(shù)的值,如果是的話那么條件為真 | (A > B) 不為 true. |
| < | 檢查左邊的操作數(shù)的值是否小于右操作數(shù)的值,如果是的話那么條件為真 | (A < B) 為 true. |
| >= | 檢查左邊的操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是的話那么條件為真 | (A >= B) 不為 true. |
| <= | 檢查左邊的操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是的話那么條件為真 | (A <= B) 為 true. |
JavaScript語言支持以下邏輯運(yùn)算符
假設(shè)變量A=10和變量B=20則:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| && | 所謂邏輯與操作。如果兩個(gè)操作數(shù)是非零那么那么的條件為true | (A && B) 為 true. |
| || | 所謂的邏輯或操作。如果任何兩個(gè)操作數(shù)都非零然后再條件變?yōu)閠rue | (A || B) 為 true. |
| ! | 所謂邏輯非運(yùn)算符。使用反轉(zhuǎn)操作數(shù)的邏輯狀態(tài)。如果條件為真,那么邏輯非操作符的結(jié)果false | !(A && B) 為 false. |
JavaScript語言支持以下位運(yùn)算符
假設(shè)變量A=2和變量B=3,則:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| & | 所謂的按位與操作。它執(zhí)行其整數(shù)參數(shù)的每一位布爾與運(yùn)算 | (A & B) = 2 . |
| | | 所謂的按位或操作符。它執(zhí)行其整數(shù)參數(shù)的每一位布爾或操作 | (A | B) = 3. |
| ^ | 所謂的按位異或運(yùn)算符。它執(zhí)行布爾異或運(yùn)算,其整數(shù)參數(shù)的每個(gè)位。異或意味著一個(gè)操作數(shù)有一個(gè)為真或兩個(gè)操作數(shù)為true,但不能同時(shí)使用 | (A ^ B) = 1. |
| ~ | 所謂的按位非操作符。這是一個(gè)是一元運(yùn)算符和操作由扭轉(zhuǎn)操作數(shù)的所有位 | (~B) = -4 . |
| << | 所謂的按位左移運(yùn)算。它移動(dòng)的所有位在其第一個(gè)操作數(shù)向左的第二個(gè)操作數(shù)指定的位數(shù)。新的位用零填充。移一個(gè)位置剩下的值等效于乘以2,移位兩個(gè)位置相當(dāng)于乘以4 | (A << 1) = 4. |
| >> | 所謂的按位右移帶符號(hào)的操作。它移動(dòng)的所有位在其第一個(gè)操作數(shù)到右邊的第二個(gè)操作數(shù)指定的位數(shù)。在左邊填充在比特取決于原始操作數(shù)的符號(hào)位,在為了保持結(jié)果的符號(hào)。如果第一操作數(shù)是正的,其結(jié)果有放置在高比特零;如果第一操作數(shù)是負(fù)的,其結(jié)果有那些放置在高比特。移的值正確的地方,相當(dāng)于除以2(舍去余),右移兩個(gè)地方是相當(dāng)于由4到整數(shù)除法,并依此類推 | (A >> 1) = 1. |
| >>> | 所謂的按位右移零操作。操作符與>>操作一樣,所不同的是位移在左側(cè)總是零 | (A >>> 1) = 1. |
JavaScript語言支持以下賦值運(yùn)算符:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| = | 簡單的賦值操作符,分配值從右邊的操作數(shù)左側(cè)的操作數(shù) | C = A + B 將分配A + B 的值到 C |
| += | ADD和賦值運(yùn)算符,它增加了右操作數(shù)左操作數(shù)和分配結(jié)果左操作數(shù) | C += A 相等于 C = C + A |
| -= | 減和賦值運(yùn)算符,它減去右操作數(shù)從左側(cè)的操作數(shù)和分配結(jié)果左操作數(shù) | C -= A 相等于 C = C - A |
| *= | 乘法和賦值運(yùn)算符,它乘以右邊的操作數(shù)與左操作數(shù)和分配結(jié)果左操作數(shù) | C *= A 相等于 C = C * A |
| /= | 相除賦值運(yùn)算符,它把左操作數(shù)與右操作數(shù)和分配結(jié)果左操作數(shù) | C /= A 相等于 C = C / A |
| %= | 模量和賦值運(yùn)算符,它需要使用兩個(gè)操作數(shù)的模量和分配結(jié)果左操作數(shù) | C %= A 相等于 C = C % A |
注:同樣的邏輯也適用于位運(yùn)算符,它們就如 <<=, >>=, >>=, &=, |= and ^=.
有一種叫做條件運(yùn)算符。根據(jù)第一計(jì)算表達(dá)式為真或假的值,然后執(zhí)行根據(jù)計(jì)算結(jié)果來計(jì)算給定兩個(gè)陳述中的一個(gè)。條件操作符的語法如下:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| ? : | 條件表達(dá)式 | 如果條件為 true ? 那么為X值 : 否則為 Y值 |
typeof是一元運(yùn)算符是放置其單個(gè)操作數(shù)之前,它可以是任何類型。它的值是一個(gè)字符串,指示操作數(shù)的數(shù)據(jù)類型。
typeof運(yùn)算符的計(jì)算結(jié)果為"number", "string", 或 "boolean",如果操作數(shù)是數(shù)字,字符串或布爾值,并返回true或false的基礎(chǔ)上進(jìn)行評(píng)估計(jì)算。下面是typeof運(yùn)算符返回值的列表:
| 類型 | 返回 typeof 的字符串 |
|---|---|
| Number | "number" |
| String | "string" |
| Boolean | "boolean" |
| Object | "object" |
| Function | "function" |
| Undefined | "undefined" |
| Null | "object" |