Javascript 警报编号以 0 开头

标签 javascript

我有一个按钮,我在后面的代码中添加了一个 onclick 并传递了一个唯一的 ID,该 ID 将传递给 js 函数。 id 以 0 开头。

它没有用,最终我发现它传递的数字、id 是错误的...

即。看到这个:js fiddle

它在数字的开头和结尾处使用 '。只是想知道为什么 013 会变成 11。我用谷歌搜索了一下,但找不到任何东西……

干杯

罗宾

编辑:

谢谢大家。是的,现在明白了。

在这种情况下,开头的 0 是有意义的,这里是邮件列表中的收件人 ID,我将使用“013”而不是仅仅 013,即字符串。然后我可以拆分 js 中的值,因为 3 个值中的每一个都代表一个不同的 id,它始终只有 1 个字符长,即 0-9。

最佳答案

0 开头的数字文字被视为八进制数。所以 8 进制的 13 是 10 进制的 11...

八进制数字文字已被弃用,但如果您不处于严格模式下,它仍然有效。

(你没有问,但是)以 0x 开头的数字文字被视为十六进制。

更多信息请访问 MDN .

在您的演示中,参数称为 id,这意味着您不需要对其进行数值运算 - 如果需要,只需将其放在引号中并将其用作字符串。

如果您需要能够传递前导零但仍将数字视为基数 10 以对其进行数值运算,您可以将其括在引号中以将其作为字符串传递,然后将字符串转换为数字强制以 10 为基数的方式,例如:

something('013');

function something(id){    
    alert(+id);             // use unary plus operator to convert
    // OR
    alert(parseInt(id,10)); // use parseInt() to convert        
}

演示:http://jsfiddle.net/XYa6U/5/

关于Javascript 警报编号以 0 开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12888075/

相关文章:

javascript - forEach() 是否通过引用绑定(bind)?

javascript - 在客户端将敏感数据存储在数组中是否危险

javascript - 如何在jade中按条件包含模板代码?

javascript - 添加验证到动态创建的具有唯一名称的输入字段

javascript - AngularJS 指令 : get restrict type in link phase

javascript - 让gulp在处理后的scss文件所在的目录下动态写入css

javascript - Koa.js 中止正在运行的请求

javascript - 确定何时加载 innerHTML 的事件

javascript - rails 6 : Can't get select helper's HTML options to work properly

javascript - Protractor 中的 Jasmine 助手