我知道Javascript類型強制(== vs ===)。Javascript filter()默認執行類型強制嗎?
我正在查看filter()函數。它似乎默認執行類型強制。它是否正確?這裏是代碼:
var x = [1,2,'hi']
console.log(x.filter(String)); // [ 1, 2, 'hi' ]
console.log(x.filter(Number)); // [ 1, 2]
如果我不想這樣的話,我會不得不添加一個回調過濾器功能?我感到驚訝,這在目前的形式工作,因爲我認爲它始終需要一個回調參數。
過濾器()應該繼續爲其回調返回truthy值的元素。你的測試結果反映了什麼。你需要一個參數是什麼意思? 'String()'和'Number()'函數都帶有一個參數... – nnnnnn
它至少一眼就會出現。字符串和數字在這種情況下是回調,以字符串(1/2 /「hi」)運行。 String(「hi」)== true返回false,但是!! String(「hi」)返回true。不知道這是什麼意思,但是,它似乎是通過函數運行值,然後強制結果爲布爾值。 – xiix
Ahhhh。我不知道字符串和數字實際上是功能 –