JavaScript中的parseInt方法

时间:2013-12-31 01:55:28

标签: javascript

我无法理解JavaScript中second parameter方法parseInt的使用情况。以下是一些输出:

parseInt("9",10) ====> 输出 9

parseInt("9",100) ====> 输出:NaN

parseInt("90",10) ====> 输出 9

parseInt("90",100) ====> 输出:NaN

请解释第二个参数的用途。

6 个答案:

答案 0 :(得分:3)

第二个参数称为Radix - 请参阅此处http://en.wikipedia.org/wiki/Radix,该参数用于指定编号系统。有关更详细的解释,请参见此处http://mir.aculo.us/2010/05/12/adventures-in-javascript-number-parsing/

答案 1 :(得分:2)

这是基础。因此,如果它是10,则它正常运行。

parseInt("9",8) ===> NaN
parseInt("7",8) ===> 7

文档在这里:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

答案 2 :(得分:2)

基数用于指定允许数字的范围,也称为数字系统或基数;省略时,它会通过查看字符串的前缀来猜测值,例如: “0x”前缀表示16(十六进制)的基数。对于十进制系统,始终将其明确设置为10是一种很好的做法。

当数字超出指定的基数时,parseInt()将返回NaN

对于你所看到的基数为100的NaN结果,虽然没有记录,但基数的允许范围是[1,36],即最大的基数包括数字和字母。

答案 3 :(得分:1)

引用MDN(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt):

  

基数
  一个整数,表示上述字符串的基数。始终指定此参数以消除读者混淆并保证可预测的行为。当未指定基数时,不同的实现会产生不同的结果。

将其视为您尝试解析的数字的基数,它将返回基数10中的数字:

parseInt(11,10) // -> 11
parseInt(11,2) //-> 3 (binary)
parseInt(1,6) // 1
parseInt(2,6) // 2
parseInt(3,6) // 3
parseInt(4,6) // 4
parseInt(5,6) // 5
parseInt(6,6) // NaN
parseInt(7,6) // NaN
parseInt(8,6) // NaN
parseInt(9,6) // NaN
parseInt(10,6) // 6, since 5 is the highest digit in base 6 and because of this after 5 comes 10

答案 4 :(得分:1)

第二个参数是基数(或基数)。 defaut是基数10,所以如果你省略它,或者使用10,那么你将获得与你正在解析的相同的十进制数。如果指定base 16(十六进制),那么将解析解析后的数字:

示例:

parseInt("1",16) = 1
parseInt("2",16) = 2
parseInt("3",16) = 3
...
parseInt("9",16) = 9
parseInt("A",16) = 10
parseInt("B",16) = 11
...
parseInt("F",16) = 15
parseInt("10",16) = 16 (1x16 + 0)
parseInt("11",16) = 17 (1x16 + 1)
parseInt("12",16) = 18 (1x16 + 2)

这有帮助吗?

答案 5 :(得分:1)

首先,你的一些例子是不正确的。 parseInt(“90”,10)应输出90。

第二个参数是ary。 parseInt(“90”,10)表示将“90”解析为十进制。

但为什么parseInt(xxx,100)输出NaN?你应该尝试parseInt(“90”,36)和parseInt(“90”,37)。

明白了吗?只有36个字母,所以没有更多的字母显示37个十六进制中的数字。

最后,抱歉我的英语。