我只注意到:爲什麼我在node.js中使用parseInt得到奇怪的結果? (從鉻JS控制檯不同的結果)
//IN CHROME JS CONSOLE
parseInt("03010123"); //prints: 301
//IN NODE.JS
parseInt("03010123"); //prints: 790611
由於兩者都基於V8,爲什麼同樣的操作產生不同的結果???
我只注意到:爲什麼我在node.js中使用parseInt得到奇怪的結果? (從鉻JS控制檯不同的結果)
//IN CHROME JS CONSOLE
parseInt("03010123"); //prints: 301
//IN NODE.JS
parseInt("03010123"); //prints: 790611
由於兩者都基於V8,爲什麼同樣的操作產生不同的結果???
當傳遞給parseInt的字符串的前導字符爲0時,會發生未定義的行爲,並且您將忽略基數參數。
一個整數,表示上述字符串的基數。始終指定此參數以消除讀者的困惑並保證可預測的行爲。未指定基數時,不同的實現會產生不同的結果。
有些瀏覽器默認爲基地8,有的基地10我不知道是什麼文件說有關節點,但顯然它是假設基地8,因爲3010123
在基地8是基地10
790611
你需要使用:
parseInt("03010123", 10);
多數民衆贊成它!謝謝。你可能想通過添加這個鏈接作爲參考來改進你的答案:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt – renatoargh
@RenatoGama - 完成 - 謝謝。 –
您也可以使用Number()作爲替代。 – Kiddo
http://code.google.com/p/v8/issues/detail?id=1645 –
節點是什麼版本的?我無法複製它。 – Blender
@Blender v0.8.18 – renatoargh