首先是Array.prototype.map方法,這是ES5給出的數組實例的方法。給map傳壹個回調函數,map會遍歷數組,把相關信息壹起傳入回調函數,檢索回調函數的返回值作為新數組的對應索引元素,返回新數組。
回調函數壹次可以得到三個值——(1)數組元素(2)索引值(3)數組本身。
註意:傳遞給map()的函數調用方式與傳遞給forEach()的函數相同,但是傳遞給map()的函數應該有返回值。Map()返回壹個新數組,它不修改調用數組。如果調用數組是稀疏的,那麽返回的數組也是稀疏的——具有相同的長度和相同的缺失元素。
Array.prototype.map方法的基礎實現
ParseInt函數用於將第壹個字符串轉換成數字,它接受兩個參數。第壹個參數是我們需要轉換的字符串,第二個參數是可選的,表示字符串的基數,即參數表示我們需要通過幾個十進制來轉換字符串,比如2,表示字符串用二進制表示。如果我們省略第二個參數,當字符串以0x或0X開頭時,將被視為十六進制,否則將被視為十進制。
特例:parseInt的第二個參數為0時,表示第二個參數沒有傳遞,字符串會被當作十進制,這也是最常見的情況。
此外,當字符串的第壹個非空格字符無法轉換為數字時,也會返回NaN。
以下是壹些例子:
[1,2,3].map的parse int(parse int)得到了map作為回調函數提供的三個參數。得益於JavaScript是弱類型語言,如果傳遞的參數個數不匹配,它不會給出錯誤,只會丟棄不用的參數,將缺失的參數設置為未定義。
ParseInt在這裏只使用了兩個參數,即數組元素和索引值。
事實上,我們可以將話題擴展成以下功能:
如此清楚,我們很容易得到以下結果:
所以最後我們得到返回結果:[1,NaN,NaN]