運(yùn)算符對(duì)給定的操作數(shù)執(zhí)行數(shù)學(xué)和邏輯運(yùn)算。
JavaScript具有以下類型的運(yùn)算符:
算術(shù)運(yùn)算符
賦值運(yùn)算符
比較運(yùn)算符
按位運(yùn)算符
邏輯運(yùn)算符
字符串運(yùn)算符
條件(三元)運(yùn)算符
一元運(yùn)算符
關(guān)系運(yùn)算符
算術(shù)運(yùn)算符用于對(duì)數(shù)字執(zhí)行算術(shù)運(yùn)算。
算術(shù)運(yùn)算符將數(shù)值作為其操作數(shù),并返回單個(gè)數(shù)值。
運(yùn)算符 | 描述 | 示例 | 定義 | 測(cè)試一下 |
---|---|---|---|---|
+ | 加法 | a + b | a和b的總和 | 測(cè)試一下 |
- | 減法 | a-b | a和b之差 | 測(cè)試一下 |
* | 乘法 | a * b | a和b的乘積 | 測(cè)試一下 |
** | 求冪 | a ** b | a的b次方 | 測(cè)試一下 |
/ | 除法 | a / b | a除以b | 測(cè)試一下 |
% | 求模(余數(shù)) | a%b | a / b的余數(shù) | 測(cè)試一下 |
++ | 自增 | a ++ | a自增1 | 測(cè)試一下 |
-- | 自減 | a-- | a自減1 | 測(cè)試一下 |
賦值運(yùn)算符將值分配給JavaScript變量。
簡(jiǎn)單賦值運(yùn)算符等于(=),它將其右操作數(shù)的值賦給其左操作數(shù)。
運(yùn)算符 | 描述 | 示例 | 等同 | 測(cè)試一下 |
---|---|---|---|---|
= | 賦值 | a = b | a = b | 測(cè)試一下 |
+= | 相加之后再賦值 | a + = b | a = a + b | 測(cè)試一下 |
-= | 相減之后再賦值 | a-= b | a = a-b | 測(cè)試一下 |
*= | 相乘之后再賦值 | a * = b | a = a * b | 測(cè)試一下 |
**= | 求冪之后再賦值 | a ** = b | a = a ** b | 測(cè)試一下 |
/= | 相除之后再賦值 | a / = b | a = a / b | 測(cè)試一下 |
%= | 求模之后再賦值 | a%= b | a = a%b | 測(cè)試一下 |
比較運(yùn)算符用于比較兩個(gè)值并返回布爾值。
運(yùn)算符 | 描述 | 示例 | 定義 | 測(cè)試一下 |
---|---|---|---|---|
== | 等于 | a == b | 如果a等于b,則為真 | 測(cè)試一下 |
=== | 相同 | a === b | 如果a等于b,并且屬于相同類型,則為true | 測(cè)試一下 |
!= | 不相等 | a!= b | 如果a不等于b為真 | 測(cè)試一下 |
!== | 不相等包括類型 | a!== b | 如果a不等于b,并且不是同一數(shù)據(jù)類型,則為true | 測(cè)試一下 |
> | 大于 | a> b | 如果a大于b,則為true | 測(cè)試一下 |
< | 小于 | a <b | 如果a小于b,則為true | 測(cè)試一下 |
>= | 大于或等于 | a> = b | 如果a大于或等于b,則為true | 測(cè)試一下 |
<= | 小于或等于 | a <= b | 如果a小于或等于b,則為true | 測(cè)試一下 |
(a ==b)和(a ===b)之間的區(qū)別是:
== 如果a等于b,則返回true
===如果a等于b,并且它們屬于同一類型,則返回true
可以在條件語句中使用比較運(yùn)算符來比較值并根據(jù)得到結(jié)果進(jìn)入不同流程。
在本教程的后面,您將學(xué)習(xí)如何使用條件語句。
按位運(yùn)算符將其操作數(shù)視為一組32位(零和一),而不是十進(jìn)制,十六進(jìn)制或八進(jìn)制數(shù)字。
該操作中的任何數(shù)字操作數(shù)都將轉(zhuǎn)換為32位數(shù)字。結(jié)果轉(zhuǎn)換回JavaScript編號(hào)。
運(yùn)算符 | 描述 | 示例 | 等同 | 結(jié)果 | 小數(shù) |
---|---|---|---|---|---|
& | 與 | 5&1 | 0101和0001 | 0001 | 1個(gè) |
| | 或 | 5 | 1 | 0101 | 0001 | 0101 | 5 |
~ | 非 | ~5 | ~0101 | 1010 | 10 |
^ | 異或 | 5 ^ 1 | 0101 ^ 0001 | 0100 | 4 |
<< | 左移 | 5 << 1 | 0101 << 1 | 1010 | 10 |
>> | 有符號(hào)右移 | 5 >> 1 | 0101 >> 1 | 0010 | 2 |
>>> | 無符號(hào)右移 | 5 >>> 1 | 0101 >>> 1 | 0010 | 2 |
上面的示例使用4位無符號(hào)示例。但是JavaScript使用32位帶符號(hào)的數(shù)字。
因此,在JavaScript中,~5不會(huì)返回10。它將返回-6。
~00000000000000000000000000000101將返回11111111111111111111111111111010
邏輯運(yùn)算符用于確定變量或值之間的邏輯。
邏輯運(yùn)算符通常用于組合條件語句,它們返回布爾值。
運(yùn)算符 | 描述 | 示例 | 定義 | 測(cè)試一下 |
---|---|---|---|---|
&& | 邏輯與 | a && b | 如果a和b都為真,則為真 | 測(cè)試一下 |
|| | 邏輯或 | a|| b | 如果a或b為真,則為真 | 測(cè)試一下 |
! | 邏輯非 | !a | 如果a不為真,則為真 | 測(cè)試一下 |
該+運(yùn)算符還可以用于連接(拼接)字符串。
var str1 = "Hello"; var str2 = "World"; var str3 = str1 + " " + str2;測(cè)試看看?/?
加法賦值運(yùn)算符+=還可以用于連接(拼接)字符串。
var str1 = "Hey! "; str1 += "How r u doing?";測(cè)試看看?/?
在字符串上使用時(shí),該+運(yùn)算符稱為串聯(lián)運(yùn)算符。
條件運(yùn)算符是唯一采用三個(gè)操作數(shù)的JavaScript運(yùn)算符。
描述可以根據(jù)條件獲得兩個(gè)值之一。語法為:
condition ? val1 : val2
如果condition 的計(jì)算結(jié)果為true,則將返回val1,否則將返回val2。
您可以在使用標(biāo)準(zhǔn)運(yùn)算符的任何位置使用條件運(yùn)算符。
var status = (age >= 18) ? "成人" : "小孩";測(cè)試看看?/?
如果年齡為18歲或以上,則以上語句將值“成人”分配給變量status。否則,它將為status分配值“ 小孩”。
一元運(yùn)算是只有一個(gè)操作數(shù)的運(yùn)算。
JavaScript中包含三個(gè)一元運(yùn)算符:
描述 | 描述 |
---|---|
delete | 刪除對(duì)象,對(duì)象的屬性或數(shù)組中指定索引處的元素 |
typeof | 返回變量的類型 |
void | 指定要求值的表達(dá)式而不返回值 |
delete運(yùn)算符可刪除對(duì)象,對(duì)象的屬性或數(shù)組中指定索引處的元素。
如果可以執(zhí)行操作,則delete運(yùn)算符返回true;否則,返回false。 如果無法執(zhí)行操作,則返回false。
如果delete操作符成功,它將屬性或元素設(shè)置為undefined:
var user = {firstName:"Vishal", age:"22", color:"blue"}; delete user.firstName; // returns true測(cè)試看看?/?
當(dāng)delete運(yùn)算符刪除數(shù)組元素時(shí),該元素將從數(shù)組中移除。
var fruits = ["Apple", "Mango", "Banana"]; delete fruits[0]; // delete "Apple"測(cè)試看看?/?
注意:刪除數(shù)組元素時(shí),數(shù)組長(zhǎng)度不受影響。
的typeof操作者返回一個(gè)變量或表達(dá)式的類型。
typeof "" // Returns "string" typeof "Vishal"// Returns "string" typeof "42"// Returns "string" (Number within quotes is String) typeof 42 // Returns "number" typeof true// Returns "boolean" typeof false // Returns "boolean" typeof undefined // Returns "undefined" typeof null// Returns "object" typeof {name:"Vishal", age:22} // Returns "object" typeof [2, 4, 6, 8]// Returns "object" (not "array", see note below) typeof function myFunc(){} // Returns "function"測(cè)試看看?/?
注意:typeof操作符為數(shù)組返回“object”,因?yàn)樵贘avaScript中數(shù)組是對(duì)象。
這是typeof運(yùn)算符返回值的列表:
類型 | typeof返回的字符串 |
---|---|
Number | "number" |
String | "string" |
Boolean | "boolean" |
Object | "object" |
Function | "function" |
Undefined | "undefined" |
Null | "object" |
void運(yùn)算符指定要求值的表達(dá)式,但不返回值。
下面的代碼創(chuàng)建一個(gè)超文本鏈接,當(dāng)用戶單擊該鏈接時(shí),它不會(huì)執(zhí)行任何操作。
<a href="javascript:void(0)">Click here to do nothing</a>測(cè)試看看?/?
關(guān)系運(yùn)算符比較其操作數(shù),并根據(jù)比較是否為真返回一個(gè)布爾值。
JavaScript中有兩個(gè)關(guān)系運(yùn)算符:
描述 | 描述 |
---|---|
in | 如果指定的屬性在指定的對(duì)象中,則返回true |
instanceof | 如果對(duì)象是對(duì)象類型的示例,則返回true |
如果指定的屬性在指定的對(duì)象中,in運(yùn)算符返回true。
var user = {firstName:"Vishal", age:"22", color:"blue"}; "firstName" in user; // returns true "age" in user;// returns true "Food" in user; // returns false測(cè)試看看?/?
將in運(yùn)算符與Array數(shù)組一起使用時(shí),必須指定索引號(hào),而不是該索引處的值。
var fruits = ["Apple", "Mango", "Banana"]; var item1 = 0 in fruits; // returns true var item2 = 1 in fruits; // returns true var item3 = 2 in fruits; // returns true var item4 = 3 in fruits; // returns false測(cè)試看看?/?
如果指定的對(duì)象屬于指定的對(duì)象類型,則instanceof運(yùn)算符將返回true。
需要在運(yùn)行時(shí)判斷對(duì)象類型時(shí),請(qǐng)使用instanceof運(yùn)算符。
var myObj = new Date(); if (myObj instanceof Date) { // statements to execute }測(cè)試看看?/?