2013-04-01 50 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

相關問題