早上收到Medium的邮件推送,看到这样一篇文章:Why ['1', '7', '11'].map(parseInt) returns [1, NaN, 3] in Javascriptthis
map语法:code
array.map(function(currentValue,index,arr), thisValue)
parseInt语法:ip
parseInt(string, radix);
估计不多有人在乎第二个参数字符串
radix
一个介于2和36之间的整数(数学系统的基础),表示上述字符串的基数。好比参数"10"表示使用咱们一般使用的十进制数值系统。始终指定此参数能够消除阅读该代码时的困惑而且保证转换结果可预测。当未指定基数时,不一样的实现会产生不一样的结果,一般将值默认为10。get
['1', '7', '11'].map(parseInt)
step1:数学
parseInt('1', 0, ['1', '7', '11']); => 1
step2:string
parseInt('7', 1, ['1', '7', '11']); => NaN
step3:io
parseInt('11', 2, ['1', '7', '11']); => 3
简单来讲就是map传了index参数到parseInt的radix,致使parse出现意料以外的错误。function