前言
这是一道很经典的笔试题目,在之前一头雾水的我在答案上输出[1,2,3]... 然而答案却很离谱,来看看究竟是怎么一回事。
求解过程
在MDN上查找parseInt这个方法
parseInt(string, radix)解析一个字符串并返回指定基数的十进制整数,
radix是2-36之间的整数,表示被解析字符串的基数。
返回值
从给定的字符串中解析出的一个整数。
或者
NaN,当
radix小于2或大于36,或- 第一个非空格字符不能转换为数字。
['1', '2', '3'].map(parseInt)
//`parseInt('1', 0)`,直接按照10进制解析,结果为1;
//`parseInt('2', 1)`,传入了非`2~36`的值,结果为NaN;
//`parseInt('3', 2)`,按照2进制进行解析,2进制可以解析的数字只有1和0,所以返回`NaN`
因此答案为[1, NaN, NaN]