TEST12138

TEST12138

长路漫漫,唯心作伴。

前端基礎之js加法隱式轉換

先做個小測試,不要百度和寫程式碼測試
下面的輸出都是什麼

1 + 1

'1' + 1

1 + true

NaN + 1

NaN + '1'

null + 1

null + '1'

[1] + 1

[1,2] + [1]

[1] + {n : 1}

如果說你對上面這些運算有一些模糊不清的地方,那麼估計你加法隱式轉換沒有搞清楚
加法運算的規則到底是什麼呢
一張圖讓你明明白白

image

ok,我們來看個例子

image

看著上面的圖來捋一捋
兩邊都是原始類型,都不是字串,所以都要轉為數字類型

image

相當於 0 + NaN,所以最後結果是 NaN

再比如上面裡的 [1] + 1

image

是含有物件類型的,要調用 valueOf

image

調用之後不是原始類型,那就要調用 toString

image

轉成原始類型了,走上面的步驟,含有字串,全部轉為字串相加,所以結果是 '11'

再看一個例子

image

它這裡報錯了,提示無法把這個物件轉換為原始類型,這是因為 valueOf 和 toString 無法把 obj 轉換為原始類型

這些東西,往往會出現在面試題裡面,考察你對知識點有沒有理解到位,大家努力吧

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。