我刚刚注意到:
//IN CHROME JS CONSOLE
parseInt("03010123"); //prints: 3010123
//IN NODE.JS
parseInt("03010123"); //prints: 790611
既然都是基于V8,为什么同样的操作会产生不同的结果???
我刚刚注意到:
//IN CHROME JS CONSOLE
parseInt("03010123"); //prints: 3010123
//IN NODE.JS
parseInt("03010123"); //prints: 790611
既然都是基于V8,为什么同样的操作会产生不同的结果???
当传递给parseInt的字符串具有前导 0 并且您不使用 radix 参数时,会发生未定义的行为。
一个整数,表示上述字符串的基数。始终指定此参数以消除读者混淆并保证可预测的行为。当未指定基数时,不同的实现会产生不同的结果。
一些浏览器默认以 8 为基数,有些以 10 为基数。我不确定文档对 Node 的看法,但显然它假设以 8 为基数,因为3010123
以 8 为790611
基数就是以 10 为基数。
你会想要使用:
parseInt("03010123", 10);