先看一个题目:
['1', '2', '3'].map(parseInt)
上面题目的输出结果是:[1,NaN,NaN]
这是为什么呢?
parseInt函数有两个参数
语法:parseInt(string, radix)
string:要被解析的子符串(必需的)
radix:可选参数(所以,我们一般不注意它),表示要解析的数字的基数,该值介于2~36之间。默认为10,如果该参数小于2或者大于36,则parseInt将返回NaN.
结果很明显了,上述题目的运行过程就是:
parseInt('1',0)//1
parseInt('2',1)//NaN(因为parseInt的定义,超出了radix的界限)
parseInt('3',2)//NaN(虽然没有超出界限,但是二进制里面没有3,因此返回NaN)
结束!