Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么parseInt(x,0)与parseInt(x,10)相同?_Javascript - Fatal编程技术网

Javascript 为什么parseInt(x,0)与parseInt(x,10)相同?

Javascript 为什么parseInt(x,0)与parseInt(x,10)相同?,javascript,Javascript,为什么parseInt('60',10)与parseInt('60',0)相同 JavaScript如何将0基数从MDN()转换为? 如果基数未定义、0或未指定,JavaScript将假定以下情况: 如果输入字符串以“0x”或“0x”(零后跟小写或大写X)开头,则假定基数为16,字符串的其余部分将解析为十六进制数 如果输入字符串以“0”(零)开头,则假定基数为8(八进制)或10(十进制)。具体选择哪个基数取决于实现。ECMAScript 5澄清了应该使用10(十进制),但并非所有浏览器都支持这一

为什么
parseInt('60',10)
parseInt('60',0)
相同

JavaScript如何将0基数从MDN()转换为?

如果基数未定义、0或未指定,JavaScript将假定以下情况:

如果输入字符串以“0x”或“0x”(零后跟小写或大写X)开头,则假定基数为16,字符串的其余部分将解析为十六进制数

如果输入字符串以“0”(零)开头,则假定基数为8(八进制)或10(十进制)。具体选择哪个基数取决于实现。ECMAScript 5澄清了应该使用10(十进制),但并非所有浏览器都支持这一点。因此,在使用parseInt时,请始终指定基数

如果输入字符串以任何其他值开头,则基数为10(十进制)

因此,如果解析的输入从“0”开始,则结果取决于浏览器。

来自:

如果
基数
未定义
0
,则假定为
10
,除非数字以代码单元对
0x
0x
开头,在此情况下,假定
基数
16
。如果
基数
16
,则该数字也可以选择以代码单元对
0x
0x
开头

具体而言,步骤6、8和9说明:

6-让
R
ToInt32(基数)

8-如果R≠ <代码>0

9-否则
R
=
0
,让
R
成为
10

因此,当
radix==0
时,它将始终替换为
10
,假设浏览器是兼容的

如果基数是
未定义的
0
,或
未指定的
,则JavaScript假设如下:

  • 如果输入字符串以“0x”或“0x”(零后跟小写或大写X)开头,则假定基数为16,字符串的其余部分将解析为十六进制数
  • 如果输入字符串以“0”(零)开头,则假定基数为8(八进制)或10(十进制)。选择哪个基数取决于具体实现。ECMAScript 5澄清了应该使用10(十进制),但并非所有浏览器都支持这一点。因此,在使用
    parseInt
    时,请始终指定基数
  • 如果输入字符串以任何其他值开头,则基数为10(十进制)

parseInt(字符串,基数)

字符串

  • 要分析的值。如果此参数不是字符串,则使用ToString抽象操作将其转换为字符串。忽略此参数中的前导空格
基数

  • 介于2和36之间的整数,表示字符串的基数(数学数字系统中的基数)。小心-这不是默认值10

根据文档,如果基数未定义或为0,则假定为10。 所以


1.因为与未定义的默认值一样,
0
,也是false-y。2. ...
10
?您希望base-0中的任何数字是什么?如果输入以
“0”
开头,则结果将取决于浏览器。在OP的情况下(输入是
“60”
),所有浏览器都应该将基数设置为
10
parseInt('60', 10) = (0 * 10 ^ 0) + (6 * 10 ^ 1) = 60 
     and 
parseInt('60', 0) = (0 * 10 ^ 0) + (6 * 10 ^ 1) = 60