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

标签 javascript

<分区>

我想我可以格式化回来。我只是想知道为什么会这样。

function test(d){
 console.log(d) // 151028224
}
console.log(test(00001100101000))

最佳答案

默认情况下,任何以零开头的数字都被视为八进制(以 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)

关于javascript - 当我将它作为参数传递时,为什么 JavaScript 函数会自动转换二进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57184172/

相关文章:

javascript - 如何在不使用对象文字值的情况下从 setter 访问表单数据?

javascript - 如何在 DIMPLE js 的饼图中显示百分比

javascript - 为什么当我实现 ZF2 ACL 时 javascript 停止工作?

javascript - 获取设置交叉引用

javascript - 需要 Babel “7.0.0-0” 但加载了 “6.26.3”

Javascript 间隔未清除

javascript - D3 堆积段图,按总数排序

javascript - ReactJS - 从 innerHtml 函数返回一个组件

javascript - CSS 闪烁/闪烁 Logo 技巧

javascript - 如何使用 javascript 将 css-grid 元素放入网格容器中