使用字面量(literal)直接表示一个数值时,JavaScript 对整数提供四种进制的表示方法:十进制、十六进制、八进制、二进制。浏览器
默认状况下,JavaScript 内部会自动将八进制、十六进制、二进制转为十进制。下面是一些例子。ide
0xff // 255 0o377 // 255 0b11 // 3
若是八进制、十六进制、二进制的数值里面,出现不属于该进制的数字,就会报错。ip
0xzz // 报错 0o88 // 报错 0b22 // 报错
上面代码中,十六进制出现了字母z、八进制出现数字八、二进制出现数字2,所以报错。it
一般来讲,有前导0的数值会被视为八进制,可是若是前导0后面有数字8和9,则该数值被视为十进制。class
0888 // 888 0777 // 511
前导0表示八进制,处理时很容易形成混乱。ES5 的严格模式和 ES6,已经废除了这种表示法,可是浏览器为了兼容之前的代码,目前还继续支持这种表示法。二进制