当数字前导为零时,Javascript输出不同
为什么javascript会与下面的代码产生混淆当数字前导为零时,Javascript输出不同,javascript,Javascript,为什么javascript会与下面的代码产生混淆 var a = 10; //will return output 10 var b = 010; //will return output 8 从C(1978)的最早版本开始,前导零被用来表示八进制文字 这已经被继承到C++,java,甚至JavaScript。 一些更勇敢的语言(例如Python 3)正在转向八进制文字的0o,因为现在前导0符号似乎弊大于利。从C(1978)的最早版本开始,前导零被用来表示八进制文字 这已经被继承到C++,ja
var a = 10; //will return output 10
var b = 010; //will return output 8
从C(1978)的最早版本开始,前导零被用来表示八进制文字
这已经被继承到C++,java,甚至JavaScript。
一些更勇敢的语言(例如Python 3)正在转向八进制文字的
0o
,因为现在前导0符号似乎弊大于利。从C(1978)的最早版本开始,前导零被用来表示八进制文字
这已经被继承到C++,java,甚至JavaScript。
一些更勇敢的语言(例如Python 3)正转向
0o
来表示八进制文字,因为现在领先的0表示法似乎弊大于利。如果数字以0开头,Javascript将解释为八进制数字。
千万不要写前导零的数字(比如07)。
一些JavaScript版本将数字解释为八进制,如果数字是以零开头的。如果数字是以0开头的,JavaScript将解释为八进制数字。 千万不要写前导零的数字(比如07)。
一些JavaScript版本将数字解释为八进制,如果它们是用前导零写入的。010是一个八进制表示的二进制值8 若你们不了解数字系统,在编程中基本上有4种表示数字的方法
- 二进制(基2)
- 八进制(基数8)
- 十进制(以10为基数)
- 十六进制(以16为基数)
var a= 010; //8 in decimal
var b= 0xF; //15 in decimal
了解有关JavaScript中数字的更多信息010是一个二进制值8的八进制表示形式 若你们不了解数字系统,在编程中基本上有4种表示数字的方法
- 二进制(基2)
- 八进制(基数8)
- 十进制(以10为基数)
- 十六进制(以16为基数)
var a= 010; //8 in decimal
var b= 0xF; //15 in decimal
了解有关JavaScript中数字的更多信息问题在于您使用的是松散模式,在大多数环境中,在松散模式下,前导的
0
后跟一个数字表示传统的八进制文字。在八进制中,010
(也就是说,`10八进制)是数字8。八进制是以8为底的,所以最右边的数字是“一”列,左边的数字是“八”列,左边的数字是“六十四”(8 x 8)列,等等(就像十进制一样,最右边的列是“一”,左边的下一个是“十”,左边的下一个是“百”,等等)
八进制小数
------ -------
0 0
1 1
...
7 7
10 8
11 9
12 10
13 11
14 12
15 13
16 14
17 15
20 16
...
要解决此问题,请执行以下操作:
“使用严格”;
位于顶部,和/或使用默认严格的模块),以及0
:-)开头十进制文字问题是您正在使用松散模式,并且在大多数环境中处于松散模式,前导的
0
后跟一个数字表示传统的八进制文字。在八进制中,010
(也就是说,`10八进制)是数字8。八进制是以8为底的,所以最右边的数字是“一”列,左边的数字是“八”列,左边的数字是“六十四”(8 x 8)列,等等(就像十进制一样,最右边的列是“一”,左边的下一个是“十”,左边的下一个是“百”,等等)
八进制小数
------ -------
0 0
1 1
...
7 7
10 8
11 9
12 10
13 11
14 12
15 13
16 14
17 15
20 16
...
要解决此问题,请执行以下操作:
“使用严格”;
位于顶部,和/或使用默认严格的模块),以及0
:-)开头十进制文字八进制数字010==8谢谢@Polywhirl先生我不明白这里的反对票。就像魔术师的把戏一样,一旦你知道了原因,这是显而易见的,但不是事先。八进制基数010==8谢谢你@Polywhirl先生,我不明白下面的投票。就像魔术师的把戏一样,一旦你知道原因,这是显而易见的,但不是事先。你可以使用基数,
parseInt(''+010,10)
强制数字进入基数10,使用基数,parseInt('+010,10)