掘金100道(2)['1', '2', '3'].map(parseInt) what & why ?

一、psrseInt 解析(解析字符串,字符串 => 指定基数的整数)

parseInt(string, radix)
  接收两个参数,第一个表示被处理的值(字符串),第二个表示为解析时的基数。

 

二、运行过程

  1. parseInt('1', 0) //radix为0时,且string参数不以“0x”和“0”开头时,按照10为基数处理。这个时候返回1
  2. parseInt('2', 1) //基数为1(1进制)表示的数中,最大值小于2,所以无法解析,返回NaN
  3. parseInt('3', 2) //基数为2(2进制)表示的数中,最大值小于3,所以无法解析,返回NaN

小结:

困惑点: MDN上,radix:一个介于2和36之间的整数(数学系统的基础),表示上述字符串的基数,0、1怎么算的???!!

parseInt('1', 0) 比较难以理解。

后面两种是因为 “字符串里的数” 大于进制的了,所以 无法解析而返回 NaN(Not a Number,但是 typeof NaN 是 “number"

 

三、最终答案

  • map函数返回的是一个数组,所以最后结果为[1, NaN, NaN]

你可能感兴趣的:(面试)