分配给node.jsvariables的值返回奇怪的值

我正在实际操作Node.js,我发现它非常令人兴奋。 但是,当我试图解决variables时,我得到了奇怪的结果。 当01234被分配给一个variables时,668被显示为响应,而当0123被分配时,返回83作为响应。 我不懂逻辑。 我附上这个screengrab。

在这里输入图像描述

我在c#中检查了同样的结果。 在node.js中发生了什么?

在JavaScript中,从0开始表示这个数字是octal

012 = 2 + 1 * 8 = 10

在这里引用: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt#Octal_interpretations_with_no_radix

一个八进制数字包含一个ASCII数字0和一个或多个ASCII数字0到7,它们之间用下划线分隔,可以表示正整数,零整数或负整数。

所以012是一个八进制数字,所以这就是为什么它等于十进制中的10。

一个好的解决办法是parsing它。

 parseInt("012");