当前位置: 首页 > 知识库问答 >
问题:

为什么我在node.js?中使用parseInt得到奇怪的结果(与chrome js控制台的结果不同)

松刚豪
2023-03-14

我刚刚注意到:

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

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

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

共有1个答案

米俊晤
2023-03-14

当传递给parseInt的字符串前导为0并且您省略了基数参数时,就会发生未定义的行为。

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

有些浏览器默认为基数8,有些则默认为基数10。我不确定文档中对Node的描述,但很明显,它是假定基数8,因为基数8中的3010123是基数10中的790611

你会想使用:

parseInt("03010123", 10);
 类似资料:
  • 这是我的代码: 注意:scanf内部的\n是我防止尾随换行符问题的方法。这不是最好的解决方案,但我使用它太多了,目前它正在成为我的习惯。:-) 我的预期输入和程序结果是: 输入: 对于输出,它不是打印回89,而是显示以下输出: 我用的是MSYS2包的g (GCC) 4.9.1。我注意到了g,因为我的代码中有一部分正在使用C STL。 已编辑:我通过使用标准而不是更改了我的代码,这是我的预期输入和程

  • 当试图从Hitbox API获取数据时,我得到了一个奇怪的结果。对于一个API的命令,这种情况每次都会发生,而对于另一个API的命令,这种情况只是有时发生。结果差不多是这样(这是我得到的最后一个结果): \U001F\B\0\0\0\0\0\U0003W8SμMU~S N T&N G6C$Z%9IGF[(\U0005\U000F(:6\U000F\B P C\U0015\N\U007F V\U00

  • 问题内容: 执行以下代码时: 显示以下输出: 1.0000001 但是输出应该是 1.0000000 ,对吧?如我错了请纠正我..!! 问题答案: 对于IEEE 754标准,0.1并不是真正的“ 0.1”。 0.1编码为:(带有浮点数) 0是符号(=正) 01111011指数(= 123-> 123-127 = -4 (127是IEEE 754中的 偏差 )) 100110011001100110

  • 我有一个程序可以读取两个文件(“incompleta.txt”和“completa.txt”),并比较两个文件中是否有相同的名称。其工作原理如下: 它将“completa.txt”中的所有名称存储在ArrayList中 问题是我的“lista.txt”看起来像这样:Image 第二条线完全是混乱和扭曲的。 我的Java代码:

  • 我使用Oracle11g(在Red Hat上)。我有一个带有XMLType列的简单常规表: 我使用Oracle SQL Developer(在Windows上): 很管用。我只有一个牢房。我可以双击并下载整个XML文件。 然后我试图以CLOB的形式得到结果: 很管用。我只有一个牢房。我可以双击并看到整个文本和复制它。但有个问题。当我把它复制到剪贴板时,我只得到前4000个字符。似乎在4000位置有

  • 我使用的是mongodb(v2.6.7)和mongo(2.6.7)shell客户端。 我正在尝试使用insert和update命令返回的WriteResult对象。 根据mongodocs,如果出现错误,它将返回一个writeResult对象,其中包含writeError子文档。但我无法在shell或mongo的javascript文件中访问此子文档。 下面是我的问题的说明。 我插入一个对象,并获