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

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

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

重點摘要:

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

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

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

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

2.==運算符的轉換規則

  • 情況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真值表。

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

本文同步發表於iT邦幫忙

Recent post