JavaScript严格模式不支持八进制的问题讲解

关于JavaScript严格模式不支持八进制的这个问题,首先我们大家都知道JavaScript是可以通过在数字前面加0表示八进制,
 
如下:
 
let i = 011;
console.log(i); // 9
 
但是在严格模式下,这种方式就出了问题:
 
"use strict";
let i = 011; // 报错
// Uncaught SyntaxError: Octal literals are not allowed in strict mode.
console.log(i);
 
 
意思就是八进制在严格模式下不支持。
 
如果一定要用,可以用过曲线救国的方式:
 
把八进制的数据设置为字符串,然后通过parseInt进行转化,设置转化进制为八进制。
 
"use strict";
let i = '011';
console.log(parseInt(i, 8)); // 9

dawei