猿问

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

我想我可以重新格式化它。我只是对它发生的原因感兴趣。


function test(d){

 console.log(d) // 151028224

}

console.log(test(00001100101000))


动漫人物
浏览 172回答 2
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)

大话西游666

功能与它无关。JavaScript 编译器在编译源代码时会将您的数字文字转换为数字。由于数字以 a 开头0,因此它被视为八进制而不是十进制。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答