【面试题】['1', '2', '3'].map(parseInt)输出结果?

https://segmentfault.com/a/1190000020760308

array.map(function(currentValue,index,arr), thisValue)
parseInt(string, radix)
表示要解析的数字的基数。该值介于 2 ~ 36 之间。
如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。`


在我们这道题中,很明显,它的返回值实际上就是:
[
    parseInt('1', 0),
    parseInt('2', 1),
    parseInt('3', 2)
]
从它的定义来看,由于第一个传入的第二个参数是0,所以它以10为基础来解析,所以返回数字 1 本身
第二个传入的第二个参数是1,小于2,所以返回的NaN
第三个传入的第二个参数是2,由于我们的二进制只有0、1,所以当我们传入字符串3时无法识别,所以还是返回的NaN
 
原文地址:https://www.cnblogs.com/dhjy123/p/11984349.html