(一)重要概念
- 算術運算子 (arithmetic operators)
- 賦值運算子 (assignment operators)
- 比較運算子 (comparison operators)
- 邏輯運算子 (logical operators)
(二)課程筆記( 課程影片,請按我)
邏輯運算式
&& 真正的意義是當先行的運算元可以被轉成 true 時回傳之後的運算元,否則回傳先行運算元。
|| 當先行運算元可以被轉成 true 拾回傳先行運算元,否則回傳後運算元。
關係運算式
=== 被稱為嚴格相等性(strict equiality) 運算子,它使用嚴格的同等性定義來檢查兩個運算元是否「完全相同」。
== 被稱為相等性運算子,它使用允許型別轉換、較為寬鬆的同等性定義來檢查兩個運算元是否相等。
JavaScript 支援 =、==,以及 === 運算子。
= 為「得到或被指定至」( gets or is assigned )
== 為「等於」( is equal to )
=== 為「嚴格等於」( is strictly equal to )
~「JavaScript 大全,David Flanagan 著(O'Reilly)。 版權所有 2011 David Flanagan,978-0-596-80552-4。」
在 JavaScript 裡,當你想比對兩個 value 是否相等時,請使用嚴格等於 ===
,
而不是寬鬆等於 ==
。JavaScript 是一個弱型別的語言,
意思是說在 JavaScript 裡,型別特別容易自動轉換,而 ==
不會特別判斷兩邊的資料型別是否不同,因此會發生許多難以掌握的狀況。
===
會進一步比較資料型別是否相等,
因此在撰寫 JavaScript 時一定要記得使用 ===
。
在 重量級著作 JavaScript: The Good Parts 裡,
Douglas Crockford 說得非常清楚:
「我的建議是永遠不要使用這對邪惡的雙胞胎
(指 ==
和 !=
),
永遠使用 ===
和 !==
。」
數學 | 設定 | 遞增/遞減 | 比較 | 邏輯 |
+ | = | ◌++ | === | && |
- | += | ◌-- | !== | || |
* | -= | > | ! | |
/ | *= | < | ||
% | /= | >= | ||
( ) | %= | <= |