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

你。 提交于 2019-12-06 12:38:36

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
 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!