2013-06-20 83 views
9

我創建了一個簡單的應用程序腳本如下:爲什麼parseInt爲「08」字符串返回NAN併爲「07」字符串返回7?

function testeBug() { 
    Logger.log(parseInt("07")); 
    Logger.log(parseInt("08")); 
} 

而這裏的記錄器輸出:

[13-06-19 23:09:13:130 BRT] 7.0 [13-06- 19 23:09:13:130 BRT] NaN

爲什麼會發生這種情況? 我正在使用Google Apps腳本

+1

[How come parseInt(「08」)= 0,parseInt(「07」)= 7](http://stackoverflow.com/questions/12652305/how-come-parseint08-0-parseint07- 7) - JavaScript中的八進制 - 8不是有效的八進制數字。 –

+0

我正在使用GOOGLE APPS SCRIPT而不是Java Script –

+0

Altought使用相同的解決方案。 –

回答

17

您需要在基數參數傳遞給parseInt

parseInt("08", 10); 

如果不這樣做會導致某些瀏覽器與作爲基礎-8,也就是你看到的前導零對待字符串,自07在base-8中是7,而08是無效的。

1

07是有效的八進制符號,08不是。

相關問題