为了账号安全,请及时绑定邮箱和手机立即绑定

当我将它作为参数传递时,为什么 JavaScript 函数会自动转换二进制数?

当我将它作为参数传递时,为什么 JavaScript 函数会自动转换二进制数?

动漫人物 2021-08-20 16:54:56
我想我可以重新格式化它。我只是对它发生的原因感兴趣。function test(d){ console.log(d) // 151028224}console.log(test(00001100101000))
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

默认情况下,任何以零开头的数字都被视为八进制(以 8为底)数字表示,然后,当您显示任何带有 的数字时console.log,它会被写入以 10 为基数的表示。


console.log(05)

console.log(06)

console.log(07)

console.log(010)

console.log(011)

建议在代码中避免这种情况,因为它会导致混淆:


如果数字包含数字 8 或 9,则它不能是基数为 8 的数字,因此被视为基数为 10 !


console.log(05)

console.log(06)

console.log(07)

console.log(08) // Yiiik !

console.log(09) // Yiiik !

console.log(010)

console.log(011)


查看完整回答
反对 回复 2021-08-20
?
大话西游666

TA贡献1817条经验 获得超14个赞

功能与它无关。

JavaScript 编译器在编译源代码时会将您的数字文字转换为数字。

由于数字以 a 开头0,因此它被视为八进制而不是十进制。


查看完整回答
反对 回复 2021-08-20
  • 2 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信