
- ES6 教程
- ES6 - 首頁
- ES6 - 概述
- ES6 - 環境
- ES6 - 語法
- ES6 - 變數
- ES6 - 運算子
- ES6 - 決策
- ES6 - 迴圈
- ES6 - 函式
- ES6 - 事件
- ES6 - Cookie
- ES6 - 頁面重定向
- ES6 - 對話方塊
- ES6 - void 關鍵字
- ES6 - 頁面列印
- ES6 - 物件
- ES6 - 數字
- ES6 - 布林值
- ES6 - 字串
- ES6 - Symbol
- ES6 - 新的字串方法
- ES6 - 陣列
- ES6 - 日期
- ES6 - 數學
- ES6 - 正則表示式
- ES6 - HTML DOM
- ES6 - 迭代器
- ES6 - 集合
- ES6 - 類
- ES6 - Map 和 Set
- ES6 - Promise
- ES6 - 模組
- ES6 - 錯誤處理
- ES6 - 物件擴充套件
- ES6 - Reflect API
- ES6 - Proxy API
- ES6 - 驗證
- ES6 - 動畫
- ES6 - 多媒體
- ES6 - 除錯
- ES6 - 圖片地圖
- ES6 - 瀏覽器
- ES7 - 新特性
- ES8 - 新特性
- ES9 - 新特性
- ES6 有用資源
- ES6 - 快速指南
- ES6 - 有用資源
- ES6 - 討論
ES6 - 運算子
一個表示式是一種特殊型別的語句,它會計算出一個值。每個表示式都由以下部分組成:
運算元 − 代表資料。
運算子 − 定義如何處理運算元以生成值。
考慮以下表達式:2 + 3。在這個表示式中,2 和 3 是運算元,符號 +(加號)是運算子。JavaScript 支援以下型別的運算子:
- 算術運算子
- 邏輯運算子
- 關係運算符
- 位運算子
- 賦值運算子
- 三元/條件運算子
- 字串運算子
- 型別運算子
- void 運算子
算術運算子
假設變數a和b的值分別為 10 和 5。
運算子 | 功能 | 示例 |
---|---|---|
+ | 加法
返回運算元的和。 |
a + b 為 15 |
- | 減法
返回數值的差。 |
a - b 為 5 |
* | 乘法
返回數值的積。 |
a * b 為 50 |
/ | 除法
執行除法運算並返回商。 |
a / b 為 2 |
% | 取模
執行除法並返回餘數。 |
a % b 為 0 |
++ | 遞增
將變數的值遞增 1。 |
a++ 為 11 |
-- | 遞減
將變數的值遞減 1。 |
a-- 為 9 |
關係運算符
關係運算符測試或定義兩種實體之間的關係。關係運算符返回布林值,即 true/false。
假設 A 的值為 10,B 的值為 20。
運算子 | 描述 | 示例 |
---|---|---|
> | 大於 | (A > B) 為 False |
< | 小於 | (A < B) 為 True |
>= | 大於或等於 | (A >= B) 為 False |
<= | 小於或等於 | (A <= B) 為 True |
== | 等於 | (A == B) 為 False |
!= | 不等於 | (A != B) 為 True |
邏輯運算子
邏輯運算子用於組合兩個或多個條件。邏輯運算子也返回布林值。假設變數 A 的值為 10,B 的值為 20。
顯示示例.
運算子 | 描述 | 示例 |
---|---|---|
&& |
與
只有當所有指定的表示式都返回 true 時,運算子才返回 true。 |
(A > 10 && B > 10) 為 False |
|| |
或
如果至少一個指定的表示式返回 true,則運算子返回 true。 |
(A > 10 || B > 10) 為 True |
! |
非
運算子返回表示式的結果的逆值。例如:!(7 > 5) 返回 false。 |
!(A > 10) 為 True |
位運算子
JavaScript 支援以下位運算子。下表總結了 JavaScript 的位運算子。
顯示示例.
運算子 | 用法 | 描述 |
---|---|---|
按位與 | a & b | 對於兩個運算元的相應位都是 1 的每個位位置,返回 1 |
按位或 | a | b | 對於兩個運算元的相應位中任一個或兩個都是 1 的每個位位置,返回 1 |
按位異或 | a^b | 對於兩個運算元的相應位中只有一個是 1 的每個位位置,返回 1 |
按位非 | ~ a | 反轉其運算元的位 |
左移 | a << b | 將 a 的二進位制表示向左移動 b (< 32) 位,從右邊移入零 |
符號擴充套件右移 | a >> b | 將 a 的二進位制表示向右移動 b (< 32) 位,丟棄移出的位 |
零填充右移 | a >>> b | 將 a 的二進位制表示向右移動 b (< 32) 位,丟棄移出的位,並從左邊移入零 |
賦值運算子
下表總結了賦值運算子。
顯示示例.
序號 | 運算子和描述 |
---|---|
1 |
= (簡單賦值) 將右側運算元的值賦給左側運算元。 示例 − C = A + B 會將 A + B 的值賦給 C |
2 |
+= (加法賦值) 它將右側運算元新增到左側運算元,並將結果賦給左側運算元。 示例 − C += A 等效於 C = C + A |
3 |
-= (減法賦值) 它從左側運算元中減去右側運算元,並將結果賦給左側運算元。 示例 C -= A 等效於 C = C - A |
4 |
*= (乘法賦值) 它將右側運算元乘以左側運算元,並將結果賦給左側運算元。 示例 C *= A 等效於 C = C * A |
5 |
/= (除法賦值) 它將左側運算元除以右側運算元,並將結果賦給左側運算元。 |
注意 − 位運算子也適用相同的邏輯,因此它們將變為 <<=、>>=、>>=、&=、|= 和 ^=。
其他運算子
以下是一些其他運算子。
負號運算子 (-)
更改值的符號。以下程式是相同的示例。
var x = 4 var y = -x; console.log("value of x: ",x); //outputs 4 console.log("value of y: ",y); //outputs -4
在成功執行上述程式後,將顯示以下輸出。
value of x: 4 value of y: -4
字串運算子:連線運算子 (+)
當 + 運算子應用於字串時,它會將第二個字串附加到第一個字串。以下程式有助於理解這個概念。
var msg = "hello"+"world" console.log(msg)
在成功執行上述程式後,將顯示以下輸出。
helloworld
連線操作不會在字串之間新增空格。多個字串可以在單個語句中連線。
條件運算子 (?)
此運算子用於表示條件表示式。條件運算子有時也稱為三元運算子。以下是語法。
Test ? expr1 : expr2
其中:
Test − 指條件表示式
expr1 − 如果條件為 true,則返回的值
expr2 − 如果條件為 false,則返回的值
示例
var num = -2 var result = num > 0 ?"positive":"non-positive" console.log(result)
第 2 行檢查變數 num 中的值是否大於零。如果 num 設定為大於零的值,則返回字串“positive”,否則返回“non-positive”字串。
在成功執行上述程式後,將顯示以下輸出。
non-positive
typeof 運算子
它是一個一元運算子。此運算子返回運算元的資料型別。下表列出了 JavaScript 中 typeof 運算子返回的資料型別和值。
型別 | typeof 返回的字串 |
---|---|
數字 | "number" |
字串 | "string" |
布林值 | "boolean" |
物件 | "object" |
以下示例程式碼顯示數字作為輸出。
var num = 12 console.log(typeof num); //output: number
在成功執行上述程式碼後,將顯示以下輸出。
number
擴充套件運算子
ES6 提供了一個名為擴充套件運算子的新運算子。擴充套件運算子由三個點“...”表示。擴充套件運算子將陣列轉換為單個數組元素。
擴充套件運算子和函式
以下示例說明了在函式中使用擴充套件運算子。
<script> function addThreeNumbers(a,b,c){ return a+b+c; } const arr = [10,20,30] console.log('sum is :',addThreeNumbers(...arr)) console.log('sum is ',addThreeNumbers(...[1,2,3])) </script>
上述程式碼的輸出將如下所示:
sum is : 60 sum is 6
擴充套件運算子和陣列複製和連線
擴充套件運算子可用於將一個數組複製到另一個數組。它還可用於連線兩個或多個數組。這在以下示例中顯示:
示例
<script> //copy array using spread operator let source_arr = [10,20,30] let dest_arr = [...source_arr] console.log(dest_arr) //concatenate two arrays let arr1 = [10,20,30] let arr2 =[40,50,60] let arr3 = [...arr1,...arr2] console.log(arr3) </script>
上述程式碼的輸出將如下所示:
[10, 20, 30] [10, 20, 30, 40, 50, 60]
擴充套件運算子和物件複製和連線
擴充套件運算子可用於將一個物件複製到另一個物件。它還可用於連線兩個或多個物件。這在以下示例中顯示:
<script> //copy object let student1 ={firstName:'Mohtashim',company:'TutorialsPoint'} let student2 ={...student1} console.log(student2) //concatenate objects let student3 = {lastName:'Mohammad'} let student4 = {...student1,...student3} console.log(student4) </script>
上述程式碼的輸出將如下所示:
{firstName: "Mohtashim", company: "TutorialsPoint"} {firstName: "Mohtashim", company: "TutorialsPoint", lastName: "Mohammad"}