
获得徽章 0
- #每日一题# ["1", "2", "3"].map(parseInt) 为什么输出 “[1, NaN, NaN]” 这个类型 ?
答: 这是因为 Array.prototype.map() 方法会将数组中的每个元素都传递给 parseInt() 函数,而 parseInt() 函数有两个参数:要转换的字符串和转换的基数(即进制数)。
但是在这个例子中,map() 方法只传递了一个参数(即当前元素),而 parseInt() 会默认使用第二个参数(进制数)作为它的第二个参数。因此,"1" 被解释成一个十进制数字 1,而 "2" 和 "3" 则被解释成二进制数,但是由于 "2" 和 "3" 不是合法的二进制数,因此它们被解释成 NaN。
这就是为什么输出的结果为 [1, NaN, NaN],因为第一个元素被正确解析成了数字 1,但是后面的两个元素则解析失败,返回了 NaN。展开评论点赞