指定運算子通常用來指定一個值給變數 ( 賦值 ),最基本的就是我們常用到的運算符 =
,會將符號右邊的值賦予到左邊的變數中。
運算子 | 意義 | 範例 |
---|---|---|
= |
將符號右邊的值賦予到左邊的變數中 | a = 3 、a = b |
+= |
a += b 等同於 a = a + b ( 將 ab 相加後指定回 a 變數 ) |
2 += 1 等於 3 |
-= |
a -= b 等同於 a = a - b ( 將 a-b 後指定回 a 變數 ) |
2 -= 1 等於 1 |
*= |
邏輯同 +=,a *= b 等同於 a = a * b |
2 *= 2 等於 4 |
/= |
邏輯同 +=,a /= b 等同於 a = a / b |
6 /= 2 等於 3 |
%= |
邏輯同 +=,a %= b 等同於 a = a % b |
5 %= 3 等於 2 |
範例
let a = 5;
console.log(a); // 答案為 5
a += 5;
console.log(a); // 答案為 10
a -= 2;
console.log(a); // 答案為 8
a/=4;
console.log(a); // 答案為 2
比較運算子可以用來比較符號兩邊運算元的關係,比較後如果關係成立會回傳 true,不成立則回傳 false。運算元可以是數值、字串、表達式或物件等。而對於不同型態的值,JavaScript 會嘗試將他們轉型到同樣型態後,再做比較,通常是先轉到數值型態。
運算子 | 意義 | 範例 |
---|---|---|
== |
等於 | 3 == 3 為 true、2 == 3 為 false |
!= |
不等於 | 3 != 3 為 false、2 != 3 為 true |
=== |
嚴格等於,不會自動轉型,只要型態不同即返回 false | 2 === 2 為 true、2 === ‘2’ 案為 false |
!== |
嚴格不等於,不會自動轉型,只要型態不同即返回 true | 2 !== 2 為 false、2 !== ‘2’ 為 true |
> |
大於 | 3 > 2 為 true、3 > 3 為 false |
>= |
大於等於 | 3 >= 2 為 true、3 >= 3 為 true |
< |
小於 | 3 < 4 為 true、3 < 3 為 false |
<= |
小於等於 | 3 <= 4 為 true、3 <= 3 為 true |
==
和 !=
不嚴格規範型態,若型態不同會自動轉型
console.log(1 == "1"); // true
console.log("5" != 5); // false
console.log(undefined == null); // true
console.log(NaN == null); // false
console.log(NaN == NaN); // false
===
和 !==
會判斷類型是否相同
console.log("123" === 123); // false 類型不同,直接為 false (不相等)
console.log("123" !== 123); // true 類型不同,直接為 true
console.log(5 > 4); // true
console.log(4 >= 4); // true
console.log(4 < 3); // false
console.log("a" < "bb"); // true (會從第一個字元開始比較,而 a < b)
console.log("abc" > "bdf"); // false
console.log("11234455" > "5"); // false (會從第一個字元開始比較,而 5 > 1,所以 "5" 比較大)
console.log("55" < "545"); // false (若第一個字元相同則往下比第二個字元)
邏輯運算子是用來做布林值的邏輯判斷,會根據內容回傳 true 或 false,主要有 &&
、||
、!
三種運算符號,分別代表 且
、或
、非
。
運算子 | 意義 | 範例 |
---|---|---|
&& |
且 ( 運算子前後都必須為 true ) | 3 == 3 && 4 == 4 為 true ( 前後皆為 true )、2 == 3 && 4 == 4 為 false |
` | ` | |
! |
非 ( 表否定,邏輯為 false 則為 true ) | !3 == 2 為 true ( 因為 3 == 2 為 false) |
&&
範例:必須滿足所有條件才成立 (為 true)
且
,每個條件都為 true 時才返回 true
console.log(true && true); //true
console.log(false && true); // false (任一條件為 false 時即不成立)
console.log(false && false); // false
&&
連接
console.log(true && true && true); // true
console.log(true && false && true); // false
console.log(false && true && true); // false
console.log(false && false && true); // false
console.log(2==2 && 3-1==2); // true
let a = 10;
let b = 5;
console.log(a > 1 && b < 6); // true
console.log(a > 10 && b < 6); // false (前者為 false)
console.log(a > 10 && b < 3); // false (兩者皆 false)
||
範例:滿足任一條件就成立 (為 true)
或
,只要有一個條件是 true 就返回 true
console.log(true || true); // true
console.log(true || false); // true (滿足一個條件)
console.log(false || true); // true (滿足一個條件)
console.log(false || false); // false (無滿足條件,兩者皆 false)
||
連接
console.log(true || true || true); // true
console.log(true || false || true); // true
console.log(false || true || true); // true
console.log(false || false || false); // false
console.log(2==2 || 2-1==1); // true
console.log(2==3 || 2-1==1); // true (後者為 true)
console.log(2==3 || 2-1==2); // false (兩者皆 false)
!
範例:表示否定
非
,會回傳相反值
console.log(!true); // false
console.log(!false); // true
console.log(!false && 2==2); // true
console.log(!true || 2==3 ); // false
console.log(!false ); // true
上一篇:[快速入門前端 40] JavaScript:運算式和運算子 (1) 算數運算子和一元運算子
下一篇:[快速入門前端 42] JavaScript:運算式和運算子 (3) 三元運算子與運算子的優先性
系列文章列表:[快速入門前端] 系列文章索引列表