iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 17
1
自我挑戰組

Head First!從頭開始學JS 《深入淺出 JavaScript 程式設計》讀書筆記系列 第 17

Day17. JavaScript的==怎麼用?不要問,很恐怖!

本日閱讀進度:第七章 重要的資料型別(275~284頁)

重點摘要:

  1. 關於等於(=)運算符

var x = 99
=是一個賦值運算符,用於把值賦予一個變數。

x == 99
==是一個比較運算符,用於比較一個值與另一個值是否相等。遇到兩個運算元的資料型別不同的情況,會自動幫你轉換。(然後讓我們更麻煩)

99 === 99
===是一個全等運算符,用於比較一個值與另一個值是否相等。遇到兩個運算元的資料型別不同的情況,直接判定false。只有在兩個運算元具有相同的資料型別和相同的值時,才會得到true。

  1. ==運算符的轉換規則
  • 情況1. 比較一個數字與一個字串
    字串會被轉換成數字,然後比較兩個數字。但並非所有字串都可以轉換成數字,這時就會出現false。
"42" == 42
// "42"會被轉換成數字42,42 == 42 => true
99 == "vanilla"
// 因為"vanilla"不能順利轉成數字,會變成NaN,99 == NaN => false
  • 情況2. 比較一個布林值與任何資料型別
    布林值會被轉換成一個數字(false會被轉換成0、true會被轉換成1),然後進行比較。
1 == true
// true會被轉換成1,1 == 1 => true
  • 情況3. 比較null與undefined
    這兩個值基本上都代表“沒有值”,所以比較這兩個值的結果為true。
undefined == null
// true

是不是被JavaScript搞得很混亂呢?初學者的我們,遇到要做比較的時候,只要謹記一個規則,那就是

不管怎樣,用===就對了

如果還是不信邪的話,可以來這裡看看那精美的JS真值表。

好,這堂課就上到這裡,下課!

本文同步發表於cichen


上一篇
Day16. 眼前的NaN不是NaN,你說的type是什麼type?
下一篇
Day18. JavaScript你可以繼續轉換沒關係
系列文
Head First!從頭開始學JS 《深入淺出 JavaScript 程式設計》讀書筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言