1、为什么[1','2','3'].map(parseInt) 输出结果:['1',NaN,NaN] ?
map方法:map方法会给灭个原数组中的每个元素都调用一次回调函数,回调函数只会在有值的索引上被调用,那些从没有被赋过值或者使用delete删除的索引则不会被调用。map的回调函数会被自动传入三个参数:数组元素,元素索引,原数组本身。
parseInt方法:该方法是可以接收两个参数的。第一个参是被转化的值,第二个参数是被转化值的进制。
NaN:代表非数字值的特殊值。该属性用于指示某个值不是数字。是Number的一种特殊类型,可以用Number.NaN得到
因此map自动传入的第二个参数即原数组的索引值被parseInt当成了进制数。当进制数为0时,默认为十进制,所以原数组第一个值转换为1。数组第二个元素是2,索引为1,即进制数为1。数组第三个元素为2,索引为2,即进制为二进制,二进制只有0和1,所以结果为NaN。当parseInt的进制参数大于等于2或者大于36,就会返回NaN