关于parseInt的一道题

2019-05-17  本文已影响0人  指尖跳动
    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]

上一篇 下一篇

猜你喜欢

热点阅读