當前位置:編程學習大全網 - 編程語言 - JS面試題:[1, 2, 3].map(parseInt)

JS面試題:[1, 2, 3].map(parseInt)

顯而易見的,在該題目中有兩個JavaScript方法,壹個是 Array.prototype.map ,另壹個是 parseInt() 。

首先是 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(parseInt)的parseInt 作為回調函數拿到了map提供的三個參數,得益於JavaScript是弱類型語言,所以傳參數量不匹配也不會報錯,只會把不用的參數拋棄掉,將缺少的參數設置為undefined。

這裏的parseInt只用到了兩個參數,分別是 數組元素 和 索引值 。

實際上我們可以把題目展開成如下函數:

如此便清晰明了了,我們很容易得到以下結果:

所以最後我們得到返回結果: [1, NaN, NaN]

  • 上一篇:作為高分子聚合組,吹膜機主要由什麽組成?
  • 下一篇:請問圖片裏的兩個動漫人物是誰?
  • copyright 2024編程學習大全網