日常踩坑--parsInt()

有如下代码:

["1","2","3"].map(parseInt);

执行结果是什么?

[1, NaN, NaN]

解析:

/*
	parseInt(value, radix) 需要两个参数, 需要被解析的值, 基数
	radix = 0, 按十进制解析
	radix = 1, 解析为 NaN
	一位的value, radix < value 例如 parseInt('3', 2) 3 无法被解析成二进制, 只能被解析成 NaN
	
	上述代码的执行过程: 
	因为 map 会传入 三个参数 (ele, index, arr) parseInt 需要两个就会取前两个(ele, index)
	parseInt('1', 0)	// 按 10 进制解析
	parseInt('2', 1)	// 无法解析 NaN
	parseInt('3', 2)	// 无法解析 NaN
	
*/


// map 传入三个参数?  使用如下代码查看

["1", "2", "3"].map(function () {
    console.log(arguments);
})

如果我非要这么做而且还能得到正确的答案, 怎么办?

["1", "2", "3"].map(function () {
    return parseInt(arguments[0], 10);
})

 

你可能感兴趣的:(JavaScript,日常踩坑,面试题)