今天我碰到一个神奇的问题,特地记录一下,其实很简单,怪我太年轻。。。
事情是这样的,一个js方法传入一个数字,平时都没问题的,举个简单的例子:
// 定义函数
function logNum(num) {
console.log(num)
}
// 调用函数
logNum(123)
输出结果:123
这没问题是吧?
今天我传入了一个特殊的数字:0123,神奇的事情出现了:
怎么变成83了???
难道这个数字有特殊的意义?不能这么传?
换个数字试试:
真是百思不得其解啊!
后来,终于我在网上找到了一样的问题:
回答如下:
原来0开头的数字是表示八进制!
用八进制计算器算把0123转成十进制还真是83呢!
同理,十六进制数是用0x开头的:
真是怪我太年轻!