JavaScript 快速導覽 - 運算子

JavaScript 提供多樣、功能完整的運算子 (operator) ,如下列表

{ } ( ) [ ]
. ; , < > <=
>= == != === !==
+ - * % ++ --
<< >> >>> & | ^
! ~ && || ?:
= += -= *= %= <<=
>>= >>>= &= |= ^=
/ /=


依功能區分,可分為


算術運算子



JavaScript 的算術運算子 (arithmetic operator) 包含加、減、乘、除、取餘數,皆需兩個運算元 (operand) 構成運算式 (expression) ,如下列表
運算子功能範例
+a + b
-a - b
*a * b
/a / b
%取餘數a % b




單元運算子



JavaScript 的單元運算子 (unary operator) 僅需一個運算元,有表示數字為正負的 + 、 - ,另有遞增運算子 (increment operator) ++ ,遞減運算子 (decrement operator) -- ,以及邏輯補數運算子 (logical compliment operator) ! ,如下列表
運算子功能範例
++a
--a
*遞增++a, a++
/遞減--a, a--
!邏輯補數運算子!a




相等性及關係運算子



JavaScript 的相等性及關係運算子 (equality and Relational Operator) ,比較兩個運算元是否相等或大於小於,結果為布林字面常數 (Boolean literal) ,也就是 truefalse ,如下列表
運算子功能範例
==相等a == b
===相同a === b
!=不相等a != b
!==不相同a !== b
>大於a >= b
>=大於等於a >= b
<小於a < b
<=小於等於a <= b


JavaScript 使用連續兩個等號 == 測試相等性,注意這與一般我們手寫的數學等號 = ,這不一樣喔!




條件運算子



JavaScript 的條件運算子 (conditional operator) ,測試兩個運算元是否都為 true ,或有一個為 true ,另有一個三元運算子,若第一個運算元為 true ,運算結果就是第二個運算元,反之結果為第三個運算元,如下列表
運算子功能範例
&&邏輯且a && b
||邏輯或a || b
?:條件選擇a ? b : c




位元運算子



JavaScript 亦提供給整數型態進行逐位元運算的運算子,例如某 16 位元整數如下
0000111100001111


取其補數該整數會變成
1111000011110000


位元運算子 (bitwise operator) ,如下列表
運算子功能範例
~取補數~a
<<保留正負號向左位移a << b
>>保留正負號向右位移a >> b
>>>無正負號向右位移a >>> b
&位元且a & b
^位元互斥或a ^ b
|位元包含或a | b




指派運算子



JavaScript 最基本的指派運算子 (assignment operator) 為單一個等號 = ,這是用來將等號右邊的值拷貝給給左邊的變數資料。等號也可以跟其他運算子合用,會直接將結果儲存到原變數之中,如
運算子功能範例
=指派a = b
+=相加同時指派a += b
-=相減同時指派a -= b
*=相乘同時指派a *= b
/=相除同時指派a /= b
%=取餘數同時指派a %= b
&=位元且同時指派a &= b
^=位元互斥或同時指派a ^= b
|=位元包含或同時指派a |= b
<<=位元向左位移同時指派a <<= b
>>=位元向右位移同時指派a >>= b
>>>=位元無正負號向右位移同時指派a >>>= b


JavaScript 用單一等號 = 表示指派,連續兩個等 == 號表示相等性。




中英文術語對照
運算子operator
算術運算子arithmetic operator
運算元operand
運算式expression
單元運算子unary operator
遞增運算子increment operator
遞減運算子decrement operator
邏輯補數運算子logical compliment operator
相等性及關係運算子equality and relational operator
布林字面常數Boolean literal
條件運算子conditional operator
位元運算子bitwise operator
指派運算子assignment operator






沒有留言: