js中 [] ? true : false 的返回值爲什麼是true?

對象到數字的轉換過程如下:

如果對象具有valueof()方法,後者返回一個原始值,則JavaScript將這個原始值轉換爲數字並返回;否則,如果對象具有toString()方法,後者返回一個原始值,JavaScript將這個字符串轉換爲數字並返回;否則,報錯。數組繼承了默認的valueOf()方法,但是數組、函數和正則表達式調用此方法後,只返回對象本身,因此轉換爲數字,還會繼續調用toString()方法,空數組調用toString()返回空字符串,轉換爲數字爲0,new Array(1)同樣因爲雖然長度爲1,但值爲undefined,轉換爲數字仍未0.所以,纔會出現博主提出的疑問。

參考:https://segmentfault.com/q/1010000011457390

發佈了179 篇原創文章 · 獲贊 82 · 訪問量 55萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章