猿问

Js Number.parseInt 函数中的一些奇怪行为,有人可以解释一下吗?

我在 javascript parse int 函数中发现了一些奇怪的行为。

检查以下代码:


console.log([..."111"].map(Number.parseInt))
 console.log([..."111"].map(x => Number.parseInt(x)))

当你运行第一行时,你会得到:[1, Nan, 1]

当你运行第二行时,你会得到:[1, 1, 1]

有人可以解释这种奇怪的行为吗?


慕的地10843
浏览 115回答 2
2回答

温温酱

该parseInt()函数使用两个参数定义:要解析的字符串和一个数字,该数字指示为字符串表示假定的数字基数。在第二次迭代中,.map()调用实际上是在调用Number.parseInt("1", 1)基数 1 没有意义。(基数 0 也没有意义,但它忽略了这一点。)回想一下,该.map()函数将 3 个参数传递给它的回调函数:数组中的一个元素、一个索引和数组本身。

达令说

Number.parseInt如果返回第二个参数(radix在 MDN 文档中称为)小于 2 或大于 36,则接受 2 个参数。NaN
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答