前端面試100問(2)
阿新 • • 發佈:2021-02-19
碼字不易,有幫助的同學希望能關注一下我的微信公眾號:Code程式人生,感謝!程式碼自用自取。
題目:
[‘1’, ‘2’, ‘3’].map(parseInt) what & why ?
第一眼看到這個題目的時候,腦海跳出的答案是 [1, 2, 3],但是真正的答案是[1, NaN, NaN]。
- 首先讓我們回顧一下,map函式的第一個引數callback:
var new_array = arr.map(function callback(currentValue[, index[, array]]) { // Return element for new_array }[, thisArg])
這個callback一共可以接收三個引數,其中第一個引數代表當前被處理的元素,而第二個引數代表該元素的索引。
- 而parseInt則是用來解析字串的,使字串成為指定基數的整數。
parseInt(string, radix)
接收兩個引數,第一個表示被處理的值(字串),第二個表示為解析時的基數。
- 瞭解這兩個函式後,我們可以模擬一下執行情況
- parseInt(‘1’, 0) //radix為0時,且string引數不以“0x”和“0”開頭時,按照10為基數處理。這個時候返回1
- parseInt(‘2’, 1) //基數為1(1進位制)表示的數中,最大值小於2,所以無法解析,返回NaN
- parseInt(‘3’, 2) //基數為2(2進位制)表示的數中,最大值小於3,所以無法解析,返回NaN
-
map函式返回的是一個數組,所以最後結果為[1, NaN, NaN]
-
最後附上MDN上對於這兩個函式的連結,具體引數大家可以到裡面看
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/parseInt
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map
更多關於前端的面試題內容關注我的公眾號:Code程式人生。
有微信小程式課設、畢設需求聯絡個人QQ:505417246
關注下面微信公眾號,可以領取微信小程式、Vue、TypeScript、前端、uni-app、全棧、Nodejs、Python等實戰學習資料 最新最全的前端知識總結和專案原始碼都會第一時間釋出到微信公眾號,請大家多多關注,謝謝