var res = [1,2,3,4].map(parseInt)
console.log(res)
首先,map语法如下:
array.map(function(currentValue,index,arr), thisValue)
所以map中先后执行了如下操作:
parseInt(1,0)
parseInt(2,1)
parseInt(3,2)
parseInt(4,3)
parseInt()函数将给定的字符串以指定的基数解析为整数。
parseInt(string,radix)
第二个参数表示使用的进制,我们一般使用10进制,也可能会有到8或者16进制。为了避免对“0”和“0x”开头的字符串解析错误,各种javascript编程规范都规定必须要明确给出第二个参数的值,如parseInt(“123”,10).
parseInt从头解析string为整数,在遇到不能解析的字符时就返回已近解析的整数部分,如果第一个字符就不能解析,就直接返回NaN。
parseInt(1,0),返回1
parseInt(2,1),第二个参数不在[2,36]之间,所以返回NaN
parseInt(3,2),
二进制只有0 1,3不属于2进制中的数,所以返回NaN
parseInt(4,3),同理,返回NaN。
所以最终结果是: [1,NaN,NaN,NaN]
网友评论