.

iT邦幫忙

2024 iThome 鐵人賽

DAY 17
1
佛心分享-IT 人自學之術

菜雞學習JavaScript的30日讀書分享系列 第 17

菜雞學習 JavaScript 的 30 日讀書分享【Day 17】自動轉型-上

  • 分享至 

  • xImage
  •  

====================本系列文章沒有什麼高深的理論====================
====================純粹是以一個菜雞的視角來分享====================

自動轉型(Type Coercion)

在兩個等號 == 的比較運算式下,若是雙方的資料類型不同時,則會進行「自動轉型」,那麼今天就來說說自動轉型的規則。

  • 如果其中一個值為布林值的情況下,會將 true 轉為「數字」的 1,如果是 false 則會變成「數字」的 0
  • 假如遇到字串與數字做比較的情況下,則會將字串透過 Number() 嘗試轉型為數字後,才進行比較。
  • 如果其中一方是「物件」型別,若另一方是基本型別的情況下,則會先透過物件的 valueOf() 取得對應的基本型別的值,才進行比較。
  • 還有前面所提到的 NaN 不等於 NaN,這個在 == 或是 === 的結果都是相同的。
  • 或是兩個物件進行比較時,則要看兩者是否指向同一個「實體」,只有在指向同一個「實體」時才會回傳 true
false == 0 // true
true == 0 // true

[] == [] // false
[] == ![] // true

=====,雖然都是比較的意思,但很多人以為只有 === 會檢查型別,而 == 不會檢查型別,但其實並不是這樣,而是 ===「不會」對數值做自動轉型,==「會」做自動轉型。

今日的分享就到這囉,我們明天見,掰掰!


上一篇
菜雞學習 JavaScript 的 30 日讀書分享【Day 16】比較運算子
下一篇
菜雞學習 JavaScript 的 30 日讀書分享【Day 18】自動轉型-下
系列文
菜雞學習JavaScript的30日讀書分享30
.
圖片
  直播研討會

尚未有邦友留言

立即登入留言