Ben*_*ick 93 javascript functional-programming
我在twitter上看到了这个奇怪的JavaScript行为示例
['10','10','10','10','10'].map(parseInt)
Run Code Online (Sandbox Code Playgroud)
评估为
[10, NaN, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
有人可以解释这种行为吗?我用铬和萤火虫验证了它
['10','10','10','10','10'].map(function(x){return parseInt(x);})
Run Code Online (Sandbox Code Playgroud)
正确返回10的数组作为整数.这是不正确使用map(),parseInt的错误还是其他什么?
Vis*_*ioN 109
parseInt 接收两个参数:string和radix:
var intValue = parseInt(string[, radix]);
而maphandler的第二个参数是index:
...使用三个参数调用回调:元素的值,元素的索引和遍历的Array对象.
Jos*_*ber 36
parseInt 使用map传递的前两个参数,并使用第二个参数指定基数.
以下是您的代码中发生的情况:
parseInt('10', 0) // 10
parseInt('10', 1) // NaN
parseInt('10', 2) // 2
parseInt('10', 3) // 3
parseInt('10', 4) // 4
Run Code Online (Sandbox Code Playgroud)
下面是一个MDN链接parseInt:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt.
来自MDN:
使用三个参数调用回调:元素的值,元素的索引和遍历的Array对象.
parseInt()有两个论点.价值和基数.这意味着parseInt()使用非预期的参数调用该函数.
| 归档时间: |
|
| 查看次数: |
14392 次 |
| 最近记录: |