二进制和八进制表示法

ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。

  1. 0b111110111 === 503 // true
  2. 0o767 === 503 // true

从 ES5 开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6 进一步明确,要使用前缀0o表示。

  1. // 非严格模式
  2. (function(){
  3. console.log(0o11 === 011);
  4. })() // true
  5. // 严格模式
  6. (function(){
  7. 'use strict';
  8. console.log(0o11 === 011);
  9. })() // Uncaught SyntaxError: Octal literals are not allowed in strict mode.

如果要将0b0o前缀的字符串数值转为十进制,要使用Number方法。

  1. Number('0b111') // 7
  2. Number('0o10') // 8