整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ
EP.6 RE:從零開始的學習 JS 生活-第六日之運算子
前言
轉生第六日,這一篇將會來介紹運算子,雖然前面有接觸過一些運算子,但是這一篇會針對常見的運算子做一下介紹。
運算子
一般開發上,我們最常見的基本運算子就是等號運算子(=)以及點運算子(.),那麼運算子其實還有其他種,例如加號運算子(+)、減號運算子(-)、乘號運算子(*)、除號運算子(/)、遞增運算子(++)、遞減運算子(--)、餘數運算子(%)等等,而上述這幾個又稱之為算術運算子。
當然還有另一種運算子,分別為大於運算子(>)、小於運算子(<)、大於等於運算子(>=)、小於等於運算子(<=)等等,以上這幾種運算子則是稱之為比較運算子。

最後還有一個運算子,叫做邏輯運算子,但是再轉生第六日暫時先不學習。
算術運算子
算術運算子在前面已經稍作介紹過,算術運算子顧名思義就是做計算的,所以我就直接來看範例比較快:
1 | |
比較運算子
而比較運算子就是在兩者之間或複數之間做出一個比較,比較後將會回傳布林值,也就是 true or false,所以這邊讓我們直接來看一下範例:
1 | |
另外比較運算子中還有幾個常見的運算子,分別為
==&===- 相等運算子!=&!==- 不相等運算子
那你可能會好奇等於預算子的 == & != 與 === & !== 有什麼差別,簡單來講 == & != 就是寬鬆比對,當你輸入 1 == '1'; 會得到 true,那 === & !== 就是嚴格比對,會連型別都替你做比對,所以當你輸入 1 === '1'; 是會得到 false 的。

實際開發也會建議使用嚴格比對取代寬鬆比對,所以我們就可以這樣子整理
- 一般相等 or 不相等 (寬鬆比對)
- 嚴格相等 or 不相等 (嚴格比對)
另外還有另一個特別的語法,也就是 Object.is,Object.is 是 ES6 才加入的語法,但是 Object.is 是屬於嚴格比對:
1 | |
關於 Object.is 這個語法可以看 MDN 提供的文件說明
字串相加運算子
最後在講一個特別的運算子,也就是加號運算子(+),其實加號運算子它非常特別,除了可以當作算術運算子之外,它當作字串相加運算子可以將兩個字串相加,例如:
1 | |
但是有一種狀況是一個是數字型別,另一個則是字串型別的狀況,前面我們知道加號運算子可以對數字相加,但是如果是這樣子的形式會發生什麼狀況呢?
1 | |
其實會得到 11 而不是 2,理解的方式很簡單,只要裡面有字串(也就是有單引號或雙引號包覆),那麼就一定會是字串相加。
但是這邊也有一個滿特別的狀況,如果你改成減號運算子(-),那就會變得很妙:
1 | |
你會發現竟然會得到答案 0,那這部分與 JavaScript 的自動轉換型別有關係,後面會在介紹這個東西。
最後如果你嘗試使用字串與字串做乘法的動作,只會得到一個錯誤訊息,也就是 NaN,而這意思是指 not a number 就是在說這不是一個數字:
1 | |

結尾
下一篇的 RE:從零開始的學習 JS 生活-第六日 將會介紹函式。
整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ