Skip to content
快看这页儿写了啥...

No.0020

题干

js
console.log(["1","2","3"].map(parseInt))

题解

js
// [1, NaN, NaN]

这段代码的目的是使用 map() 方法对一个字符串数组应用 parseInt() 函数,然后打印出结果。

首先,我们需要了解 map() 方法和 parseInt() 函数的用法:

  • map() 方法是一个数组的方法,它可以对数组的每个元素执行一个回调函数,并返回一个新的数组,不改变原数组。
  • parseInt() 函数是一个全局的函数,它可以将一个字符串转换为一个整数,接受两个参数:字符串和进制。

然后,我们需要注意 map() 方法和 parseInt() 函数之间的参数传递:

  • map() 方法会给回调函数传递三个参数:当前元素、当前索引和原数组。
  • parseInt() 函数会接收两个参数:字符串和进制²。如果只传递一个参数,进制默认为10。

最后,我们需要分析 map() 方法和 parseInt() 函数之间的执行过程:

  • 当执行["1","2","3"].map(parseInt)时,相当于执行以下三次调用:
    • parseInt("1", 0, ["1","2","3"]) // 返回 1
    • parseInt("2", 1, ["1","2","3"]) // 返回 NaN
    • parseInt("3", 2, ["1","2","3"]) // 返回 NaN
  • 解释如下:
    • 第一次调用时,字符串 "1" 和进制 0 被传递给 parseInt() 函数,由于进制 0 会被忽略或视为 10,所以返回 1。
    • 第二次调用时,字符串 "2" 和进制 1 被传递给 parseInt() 函数,由于进制 1 不是有效的进制,所以返回 NaN。
    • 第三次调用时,字符串 "3" 和进制 2 被传递给 parseInt() 函数,由于字符串 "3" 不是有效的二进制数,所以返回 NaN。

因此,最终的输出结果是 [1, NaN, NaN]

贡献者

isboyjc's avatar isboyjc

浏览量(PV)  次  ·  独立访客(UV)  人次
不正经的前端 | 八股 · 欢迎 star ⭐