JavaScript操作符匯總

來源:互聯網
上載者:User

標籤:減法   字典順序   assign   自訂對象   amp   .com   write   標準   bool   

 

操作符

JavaScript 有賦值、比較、算術、位、邏輯、字串和特殊運算子。本章描述了操作符,以及關於操作符優先順序的一些資訊。

表 2.1 JavaScript 所有操作符簡明列表。

表 2.1 JavaScript 操作符

操作符分類 操作符 描述




+ (加法) 將兩個數相加。
++ (自增) 將表示數值的變數加一(可以返回新值或舊值)。
- (求相反數,減法) 作為求相反數操作符時返回參數的相反數。作為二進位操作符時,將兩個數相減。
-- (自減) 將表示數值的變數減一(可以返回新值或舊值)。
* (乘法) 將兩個數相乘。
/ (除法) 將兩個數相除。
% (求餘) 求兩個數相除的餘數。
字串操作符 + (字串加法) 串連兩個字串。
+= 串連兩個字串,並將結果賦給第一個字串。




&& (邏輯與) 如果兩個運算元都是真的話則返回真。否則返回假。
|| (邏輯或) 如果兩個運算元都是假的話則返回假。否則返回真。
! (邏輯非) 如果其單一運算元為真,則返回假。否則返回真。



& (按位與) 如果兩個運算元對應位都是 1 的話則在該位返回 1。
^ (按位異或) 如果兩個運算元對應位只有一個 1 的話則在該位返回 1。
| (按位或) 如果兩個運算元對應位都是 0 的話則在該位返回 0。
~ (求反) 反轉運算元的每一位。
<< (左移) 將第一運算元的二進位形式的每一位向左移位,所移位的數目由第二運算元指定。右面的空位補零。
>> (算術右移) 將第一運算元的二進位形式的每一位向右移位,所移位的數目由第二運算元指定。忽略被移出的位。
>>> (邏輯右移) 將第一運算元的二進位形式的每一位向右移位,所移位的數目由第二運算元指定。忽略被移出的位,左面的空位補零。




= 將第二運算元的值賦給第一運算元。
+= 將兩個數相加,並將和賦給第一個數。
-= 將兩個數相減,並將差賦給第一個數。
*= 將兩個數相乘,並將積賦給第一個數。
/= 將兩個數相除,並將商賦給第一個數。
%= 計算兩個數相除的餘數,並將餘數賦給第一個數。
&= 執行按位與,並將結果賦給第一個運算元。
^= 執行按位異或,並將結果賦給第一個運算元。
|= 執行按位或,並將結果賦給第一個運算元。
<<= 執行左移,並將結果賦給第一個運算元。
>>= 執行算術右移,並將結果賦給第一個運算元。
>>>= 執行邏輯右移,並將結果賦給第一個運算元。




== 如果運算元相等的話則返回真。
!= 如果運算元不相等的話則返回真。
> 如果左運算元大於右運算元的話則返回真。
>= 如果左運算元大於等於右運算元的話則返回真。
< 如果左運算元小於右運算元的話則返回真。
<= 如果左運算元小於等於右運算元的話則返回真。




?: 執行一個簡單的“if...else”語句。
, 計算兩個運算式,返回第二個運算式的值。
delete 允許你刪除一個對象的屬性或數組中指定的元素。
new 允許你建立一個使用者自訂物件類型或內建物件類型的執行個體。
this 可用於引用當前對象的關鍵字。
typeof 返回一個字串,表明未計算的運算元的類型。
void 該操作符指定了要計算一個運算式但不傳回值。

賦值操作符

賦值操作符會根據其右運算元側的值給左運算元賦值。

 

實現版本 Navigator 2.0

最基本的賦值運算元是等號(=),它會將右運算元的值直接賦給左運算元。也就是說,x = y 將把 y 的值賦給 x。其它的賦值操作符都是標準操作的縮減形式,列在表 2.2 中。

表 2.2 賦值操作符

縮寫操作符 含義
x += y x = x + y
x -= y x = x - y
x *= y x = x * y
x /= y x = x / y
x %= y x = x % y
x <<= y x = x << y
x >>= y x = x >> y
x >>>= y x = x >>> y
x &= y x = x & y
x ^= y x = x ^ y
x |= y x = x | y

比較操作符

所謂比較操作符,就是會比較其兩邊的運算元,並根據比較結果為真或假返回邏輯值。運算元可以是數值或字串值。如果使用字串值的話,比較是基於標準的字典順序。

 

實現版本 Navigator 2.0

相關內容列在了表 2.3 中。對於該表中的樣本,我們假定 var1 被賦予了值 3,而 var2 被賦予了值 4。

表 2.3 比較操作符

操作符 描述 返回真的例子
相等(==) 如果運算元相等的話則返回真。 3 == var1
不等(!=) 如果運算元不等的話則返回真。 var1 != 4
大於(>) 如果左運算元大於右運算元的話則返回真。 var2 > var1
大於或等於(>=) 如果左運算元大於等於右運算元的話則返回真。 var2 >= var1
var1 >= 3
小於(<) 如果左運算元小於右運算元的話則返回真。 var1 < var2
小於或等於(<=) 如果左運算元小於等於右運算元的話則返回真。 var1 <= var2
var2 <= 5

算術操作符

將給定數值(常量或變數)進行給定的計算,並返回一個數值。標準的算術操作符是加(+)、減(-)、乘(*)、除(/)四則運算。這些操作符與在其它程式設計語言中的作用一樣。

 

實現版本 Navigator 2.0

% (取餘)

取餘操作符用法如下:

var1 % var2

取餘運算子將返回第一個運算元除以第二個運算元的餘數。對於上面的例子來說,將返回 var1 變數除以 var2 變數的餘數。更具體的例子是,12 % 5 將返回 2。

++ (自增)

自增操作符用法如下:

var++ 或 ++var

該自增操作符將自增運算元(自己加上 1)並返回一個值。如果寫在變數後面(如 x++),將返回自增前的值。如果寫在變數前面(如 ++x),將返回自增後的值。

例如,如果 x 是 3,那麼語句 y = x++ 將先把 y 置為 3 再將 x 自增為 4。相反,語句 y = ++x 將先將 x 自增為 4,再將 y 置為 4。

-- (自減)

自減操作符用法如下:

var-- 或 --var

該自增操作符將自減運算元(自己減去 1)並返回一個值。如果寫在變數後面(如 x--),將返回自減前的值。如果寫在變數前面(如 --x),將返回自減後的值。

例如,如果 x 是 3,那麼語句 y = x-- 將先把 y 置為 3 再將 x 自減為 2。相反,語句 y = --x 將先將 x 自減為 2,再將 y 置為 2。

- (求相反數)

求相反數運算元將取得運算元的相反數。例如,y = -x 將把 x 相反數的值賦給 y;也就是說,如果 x 是 3 的話,y 就會獲得 -3 而 x 還是 3。

位操作符

執行位操作時,操作符會將運算元看作一串二進位位(1和0),而不是十進位、十六進位或八位元字。例如,十進位的 9 就是二進位的 1001。位操作符在執行的時候會以二進位形式進行操作,但返回的值仍是標準的 JavaScript 數值。

表 2.4 JavaScript 位操作符總覽

表 2.4 位操作符

操作符 用法 描述
按位與 a & b 如果兩個運算元對應位都是 1 的話則在該位返回 1。
按位或 a | b 如果兩個運算元對應位都是 0 的話則在該位返回 0。
按位異或 a ^ b 如果兩個運算元對應位只有一個 1 的話則在該位返回 1。
求反 ~ a 反轉運算元的每一位。
左移 a << b 將 a 的二進位形式左移 b 位。右面的空位補零。
算術右移 a >> b 將 a 的二進位形式右移 b 位。忽略被移出的位。
邏輯右移 a >>> b 將 a 的二進位形式右移 b 位。忽略被移出的位,左側補入 0。

位邏輯操作符

 

實現版本 Navigator 2.0

從原理上講,位邏輯操作符的工作流程是這樣的:

 

  • 將運算元轉換為 32 位的整型數值並用二進位表示。

  • 第一運算元的每一位與第二運算元的對應位配對:第一位對第一位,第二位對第二位,以此類推。

  • 對每一對位應用操作符,最終結果按位組合起來。

例如,9 的二進位表示為 1001,15 的二進位表示為 1111。所以如果對這兩個數應用位邏輯操作符,結果應該像下面這樣:

 

  • 15 & 9 結果為 9 (1111 & 1001 = 1001)

  • 15 | 9 為 15 (1111 | 1001 = 1111)

  • 15 ^ 9 為 6 (1111 ^ 1001 = 0110)

移位操作符

 

實現版本 Navigator 2.0

移位操作符需要兩個運算元:第一個是要進行移位的數值,第二個指定要對第一個數移位的數目。移位的方向由使用的操作符決定。

移位操作符將把兩個操作符轉換為 32 位整型數值,並返回與左運算元類型相同的結果。

<< (左移)

該操作符將把第一個運算元向左移若干位。移出的位將被忽略。右側空位補零。

例如,9<<2 結果為 36,因為 1001 向左移兩位變成 100100,這是 36。

>> (算術右移)

該操作符將把第一個運算元享有移若干位。移出的位將被忽略。左側的空位補上與原來最左面位相同的值。

例如,9>>2 結果為 2,因為 1001 右移兩位變成 10,這是 2。反之,-9>>2 結果為 -3,因為要考慮到符號位。

>>> (邏輯右移)

該操作符將把第一個運算元享有移若干位。移出的位將被忽略。左側的空位補零。

例如,19>>>2 結果為 4,因為 10011 右移兩位變成 100,這是 4。對於非負數,算術右移和邏輯右移結果相同。

邏輯操作符

邏輯操作符用 Boolean 值(布爾邏輯值)作為運算元,並返回 Boolean 值。

 

實現版本 Navigator 2.0

表 2.5 描述的很清楚。

表 2.5 邏輯操作符

操作符 用法 描述
與(&&) expr1 && expr2 如果 expr1 為假則返回之,否則返回 expr2。
或(||) expr1 || expr2 如果 expr1 為真則返回之,否則返回 expr2。
非(!) !expr 如果 expr 為真則返回假,否則返回真。

樣本

考慮下面的指令碼:

<script language="JavaScript1.2">"
v1 = "貓";
v2 = "狗";
v3 = false;
document.writeln("t && t 返回 " + (v1 && v2));
document.writeln("f && t 返回 " + (v3 && v1));
document.writeln("t && f 返回 " + (v1 && v3));
document.writeln("f && f 返回 " + (v3 && (3 == 4))); document.writeln("t || t 返回 " + (v1 || v2));
document.writeln("f || t 返回 " + (v3 || v1));
document.writeln("t || f 返回 " + (v1 || v3));
document.writeln("f || f 返回 " + (v3 || (3 == 4)));
document.writeln("!t 返回 " + (!v1));
document.writeln("!f 返回 " + (!v3));
</script>

該指令碼將顯示下列內容:

t && t 返回 狗
f && t 返回 false
t && f 返回 false
f && f 返回 false
t || t 返回 貓
f || t 返回 貓
t || f 返回 貓
f || f 返回 false
!t 返回 false
!f 返回 true

 

JavaScript操作符匯總

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.