parseInt()函數(shù)解析一個字符串參數(shù),并返回一個指定基數(shù)的整數(shù)。
const initValue = parseInt(string[, radix])
string是要被解析的值。如果參數(shù)不是一個字符串,則通過toString()將其轉(zhuǎn)成字符串,字符串開頭的空白符將會被忽略。
radix是一個介于2到36之間的整數(shù),表示上述字符串的基數(shù),默認為10。
返回值返回一個整數(shù)或NaN。
注意:
在radix為 undefined,或者radix為 0 或者沒有指定的情況下,JavaScript 作如下處理:
- 如果字符串 string 以"0x"或者"0X"開頭, 則基數(shù)是16 (16進制).
- 如果字符串 string 以"0"開頭, 基數(shù)是8(八進制)或者10(十進制),那么具體是哪個基數(shù)由實現(xiàn)環(huán)境決定。ECMAScript 5 規(guī)定使用10,但是并不是所有的瀏覽器都遵循這個規(guī)定。因此,永遠都要明確給出radix參數(shù)的值。
- 如果字符串 string 以其它任何值開頭,則基數(shù)是10 (十進制)。
map
map()方法創(chuàng)建一個新數(shù)組,其結(jié)果是該數(shù)組中的每個元素都調(diào)用一個提供的函數(shù)后返回的結(jié)果。
var new_array = arr.map((currentValue[, index[, array]]) => {}[, thisArg])
回調(diào)函數(shù)接收三個參數(shù),通常只是用第一個(其它兩個是可選的)。
currentValue是callback數(shù)組中正在處理的當前元素。
index可選,是callback數(shù)組中正在處理的當前元素的索引。
array可選,是callbak map方法調(diào)用的數(shù)組。
另外還有thisArg可選, 執(zhí)行 callback 函數(shù)時使用的this 值。
const arr = [1, 2, 3];
arr.map((num) => num + 1); // [2, 3, 4]
回到當前的示例中:
代碼
['1', '2', '3'].map(parseInt)
實際執(zhí)行的是
['1', '2', '3'].map((item, index) => {
return parseInt(item, index)
})
即返回值實際是:
parseInt('1', 0) // 1
parseInt('2', 1) // NaN
parseInt('3', 2) // NaN, 3 不是二進制