2013-04-01 47 views
3

我一直在试图调试一个问题,我终于找出问题所在。出于某种原因,当一个数字具有前导零时,JavaScript确实有些奇怪。当数字有一个前导零时会发生什么?

实施例:

alert(132); 
alert(0132); 

var test = 0132; 
alert(test); 

的jsfiddle:http://jsfiddle.net/U8sFu/3/

第一弹出显示 “132”,第二个 “90”,和第三显示 “90”

我的问题是,为什么数字0132成为数字90?这真让我莫名其妙!

回答

6

一些具有领先的0被解析为octal literal,这是基地8

+0

我不知道这一点......我会说90是八进制当量。 TIL。谢谢:) – brbcoding

+0

谢谢!我认为我在那里失去了一段时间:-)显然这个非常不直观的行为正在JavaScript 5中被删除:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt# ECMAScript_5_Removes_Octal_Interpretation – Nate

相关问题