日期:2014-05-16  浏览次数:20315 次

JavaScript Puzzlers 解密(一):为什么 ["1", "2", "3"].map(parseInt) 返回 [1, NaN, NaN]?

JavaScript Puzzlers!?被称为 javascript 界的专业八级测验,感兴趣的 jser 可以去试试。 我试了一下, 36 道题只做对了 19 道, 算下来正确率为 53%,还没有及格。

第一题为?["1", "2", "3"].map(parseInt)?的返回值。

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

在 javascript 中?["1", "2", "3"].map(parseInt)?为何返回不是?[1, 2, 3]?却是?[1, NaN, NaN]

我们首先回顾一下?parseInt()?个?map()?两个函数的用法:

parseInt() 函数

定义和用法

parseInt()?函数可解析一个字符串,并返回