直接上菜:
console.log(['1','2','3'].map(parseInt));
上述代码 返回什么?
我先放答案[1,NaN,NaN]
本题考了两个知识点
- map
- parseInt
1.Array.map(fun) 是一个数组方法,它接收一个函数作为参数,并使用该函数对数组的每个元素进行操作,并返回一个新的数组,其中包含操作后的结果。
2.parseInt() 函数解析字符串参数并返回指定基数(数学数字系统中的基数)的整数。
语法
parseInt(string, radix)
参数radix存在三种情况
- 超出范围(2,36) ;直接返回NaN
- 0,undefined,null 会自动转换,转换规则如下
- 0x开头; 转换16进制.
- 0开头; 转换为8进制/10进制,10进制优先.
- 10开头; 0-9 会默认使用10进制.
- 使用指定的进制进行转换
因此上述的题目就一目了然了
console.log(['1','2','3'].map(parseInt)) // 可以转换为
console.log([parseInt('1',0),parseInt('2',1),parseInt('3',2)])
// 答案为 [1,NaN,NaN]
强烈建议大家在使用parseInt这个函数时,带上第二个参数
parseInt(str,radix)