【问题标题】:Why am I getting weird result using parseInt in node.js? (different result from chrome js console)为什么我在 node.js 中使用 parseInt 会得到奇怪的结果? (与 chrome js 控制台的结果不同)
【发布时间】:2013-05-28 15:14:36
【问题描述】:

我刚刚注意到:

//IN CHROME JS CONSOLE
parseInt("03010123"); //prints: 3010123

//IN NODE.JS
parseInt("03010123"); //prints: 790611

既然都是基于V8,为什么同样的操作会产生不同的结果???

【问题讨论】:

标签: javascript node.js google-chrome parseint


【解决方案1】:

当传递给parseInt 的字符串具有前导0 并且您不使用radix 参数时,会发生未定义的行为。

一个整数,表示上述字符串的基数。始终指定此参数以消除读者混淆并保证可预测的行为。当未指定基数时,不同的实现会产生不同的结果。

有些浏览器默认以 8 为基数,而有些则以 10 为基数。我不确定文档对 Node 的看法,但显然它假设以 8 为基数,因为以 8 为基数的 3010123 在以 10 为基数的 790611 是。

你会想要使用:

parseInt("03010123", 10);

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-05-12
  • 2015-04-06
  • 1970-01-01
  • 2020-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-03
相关资源
最近更新 更多