JS-每日一题
Posted 小飞2020
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS-每日一题相关的知识,希望对你有一定的参考价值。
1. 题目
["1", "2", "3"].map(parseInt)
题目来源: http://javascript-puzzlers.herokuapp.com/
2. 解析
- map用法:
["1", "2", "3"].map((item, index, arr)=>{
return `${index}-${item}`
});
// ["0-1", "1-2", "2-3"]
- parseInt用法:
摘自MDN:
parseInt(string, radix)
解析一个字符串并返回指定基数的十进制整数,radix
是2-36之间的整数,表示被解析字符串的基数
所以, 此题的关键在于求解出:
parseInt("1", 0), parseInt("2", 1), parseInt("3", 2)
parseInt("1", 0): radix为 0 时, 默认进制为十进制, 因此结果为 1;
摘自MDN:
如果
radix
是undefined
、0
或未指定的,JavaScript会假定以下情况:
- 如果输入的
string
以 "0x
"或 "0x
"(一个0,后面是小写或大写的X)开头,那么radix被假定为16,字符串的其余部分被当做十六进制数去解析。- 如果输入的
string
以 "0
"(0)开头,radix
被假定为8
(八进制)或10
(十进制)。具体选择哪一个radix取决于实现。ECMAScript 5 澄清了应该使用 10 (十进制),但不是所有的浏览器都支持。因此,在使用parseInt
时,一定要指定一个 radix。- 如果输入的
string
以任何其他值开头,radix
是10
(十进制)。
parseInt("2", 1): 当 radix 小于 2 或大于 36, 返回 NaN;
parseInt("3", 2): 除了“0、1”外,其它数字都不是有效二进制数字, 返回 NaN;
3. 答案
因此, 最终结果为: [1, NaN, NaN]
以上是关于JS-每日一题的主要内容,如果未能解决你的问题,请参考以下文章