传递的 Javascript 参数小于调用的参数



目前,Javascript正在从我的网站上传递的参数中扣除2

例如,如果我像myFunction(123, 012)一样调用我的函数,然后在函数中记录参数的值,它们将显示为 123 和 10。 为什么 Javascript 从我的整数值中减去 2,那里有一个前导零?

我的职能:

function myFunction(arg1, arg2){
    console.log("Argument One: " + arg1 + ". Argument Two: " + arg2);
}

它不是扣除2 . 012 是八进制表示形式,其值为 10

在 EMCA-262 Edition 3 之前的 Javascript 中,整数文字可以有多种类型(参见 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals):

  • 无前导零:解释为十进制文本(十进制12 = 12)
  • 前导零:八进制解释(十进制012 = 10)
  • 前导 0x:十六进制(十进制 0x12 = 18)

然而,现在八进制文字已被弃用(从Javascript 1.5开始),原因正是这里显示的,它们非常令人困惑。

作为旁注,值得启用严格模式(在代码的停止处添加带有引号的"use strict")。当您加载包含此代码的页面时,它会引发语法错误。

相关内容

最新更新