["1","2","3"].map(parseInt),结果为什么是1,NaN,NaN??

网上解释说,上面那段代码相当于[parseInt(1,0),parseInt(2,1),parseInt(3,2)],我不是很理解为什么是这样的

猛跑小猪
浏览 530回答 2
2回答

杨魅力

map函数会给callback传递三个参数,被遍历的元素、元素的索引和被遍历的数组本身。parseInt会接收两个参数,第一个参数代表需要parse的这个数字,第二参数代表进制,所以会出现你说的那种情况。

慕神8447489

相当于这样[1, 2, 3].map((num, index) => parseInt(num, index))而parseInt接收的第二个参数会作为将要转换的进制,只接受2到36之间的整数0估计是布尔为false了,使用默认进制,也就是10进制1是不被允许的进制,应该是相当于错误去处理了,无论怎么样都会返回NaN二进制中是没有3的,为NaN大概是这样,没有详细验证,见谅
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript