複合賦值運算子
運算子 |
符號 |
加法 |
+= |
按位與 |
&= |
按位或 |
|= |
按位異或 |
^= |
除法 |
/= |
左移 |
<<= |
模數 |
%= |
乘法 |
*= |
右移 |
>>= |
減法 |
-= |
無符號右移 |
>>>= |
要求
版本資訊
條件(三目)運算子 (?:)
根據條件執行兩個語句中的其中一個。
test ?
語句1 :
語句2
參數
test
任何 Boolean 運算式。
語句1
當 test 是 true 時執行的語句。可以是複合陳述式。
語句2
當 test 是 false 時執行的語句。可以是複合陳述式。
說明
?: 運算子是 if...else 語句的捷徑。它通常被用作較大運算式的一部分,而在此處使用 if...else 語句是不協調的。例如:
var now = new Date();var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");
在該例子中,如果是 6pm 以後,則建立一個包含 "Good evening." 的字串。使用 if...else 語句的等效代碼如下:
var now = new Date();var greeting = "Good";if (now.getHours() > 17)
greeting += " evening.";
else
greeting += " day.";
要求
版本 1
請參閱
if...else 語句 | 運算子優先順序 | 運算子總結
delete 運算子
從對象中刪除一個屬性,或從數組中刪除一個元素。
delete expression
expression 參數是一個有效 JScript 運算式,通常是一個屬性名稱或數組元素。
說明
如果 expression 的結果是一個對象,且在 expression 中指定的屬性存在,而該對象又不允許它被刪除,則返回 false。
在所有其他情況下,返回 true。
要求
版本 3
請參閱
運算子優先順序 | 運算子總結
除法賦值運算子 (/=)
變數值除以運算式值,並將結果賦給該變數。
result /= expression
參數
result
任何數值變數。
expression
任何數值運算式。
說明
使用 /= 運算子和使用下面的語句是等效的:
result = result / expression
要求
版本 1
請參閱
/ 運算子 | 運算子優先順序 | 運算子總結
除法運算子 (/)
將兩個運算式的值相除。
result = number1 / number2
參數
result
任何數值變數。
number1
任何數值運算式。
number2
任何數值運算式。
要求
版本 1
請參閱
/= 運算子 | 運算子優先順序 | 運算子總結
in 運算子
測試對象中是否存在該屬性。
result = property in object
參數
result
必選項。任意變數。
property
必選項。相當於字串運算式的一個運算式。
object
必選項。任意對象。
說明
in 操作檢查對象中是否有名為 property 的屬性。也可以檢查對象的原型,以便知道該屬性是否為原型鏈的一部分。
要求
版本 1
請參閱
運算子優先順序 | 運算子總結
遞增 (++) 和遞減 (--) 運算子
變數值遞增一或遞減一。
文法 1
result = ++variable
result = --variable
result = variable++
result = variable--
文法 2
++variable
--variable
variable++
variable--
參數
result
任何變數。
variable
任何變數。
說明
遞增和遞減運算子,是修改存在變數中的值的捷徑。包含其中一個這種運算子的運算式的值,依賴於該運算子是在變數前面還是在變數後面:
var j, k;k = 2;j = ++k;
因為遞增發生在運算式被求值前,所以值 3 賦給了 j。
和下面的例子對照:
var j, k;k = 2;j = k++;
在此,因為遞增發生在運算式被求值後,所以值 2 賦給了 j。
JavaScript 具有全範圍的運算子,包括算術、邏輯、位以及賦值運算子。此外還有其他一些運算子。
計算 邏輯 位元運算 賦值 雜項
描述 符號
負值 -
邏輯非 !
按位取反 ~
賦值 =
刪除 delete
遞增 ++
小於 <
按位左移 <<
運算賦值 oP= typeof
運算子
遞減 --
大於 >
按位右移 >>
void 運算子 void
乘法 *
小於等於 <=
無符號右移 >>>
除法 /
大於等於 >=
按位與 &
模數運算 %
等於 ==
按位異或 ^
加法 +
不等於 !=
按位或 |
減法 -
邏輯與 &&
邏輯或 ||
條件(三元運算子) ?:
逗號 ,
恒等 ===
不恒等 !==
運算子優先極
JavaScript 中的運算子是按照一個特定的順序來求值的。這個順序就是運算子的優先順序。下表按從最高到最低的優先順序列出了這些運算子。處於同一行中的運算子按從左至右的順序求值。
運算子 描述
. [] () 欄位訪問、數組下標以及函數調用
++ -- - ~ ! typeof new void delete 一元運算子、返回資料類型、對象建立、未定義值
* / % 乘法、除法、模數
+ - + 加法、減法、字串串連
<< >> >>> 移位
< <= > >= 小於、小於等於、大於、大於等於
= != === !== 等於、不等於、恒等、不恒等
& 按位與
^ 按位異或
| 按位或
&& 邏輯與
|| 邏輯或
?: 條件
= oP= 賦值、運算賦值
, 多重求值
圓括弧可用來改變求值順序。圓括弧中的運算式應在其用於語句的其餘部分之前全部被求值。
具有較高優先順序的運算子將在具有較低優先順序的運算子之前被求值。例如:
z = 78 * (96 + 3 + 45)
在該運算式中有五個運算子: =, *, (), +, 以及 +。根據優先順序,它們將按下面的順序求值: (), *, +, +, =。
首先對圓括弧內的運算式求值:其中有兩個加法運算子,它們具有相同的優先順序:96 和 3 相加,然後再將它們的和與 45 相加,得到的結果為 144。
然後是乘法運算: 78 和 144 相乘,得到結果為 11232。
最後是賦值運算:將 11232 賦給 z。