(1)二进制和八进制
  ES6新增二进制(0b或者0B),八进制(0o或者0O)来表示数值:
    0b111110111 === 503 // true
    0o767 === 503 // true
  将其他进制转为十进制,使用Number方法:
    Number('0b111') // 7
    Number('0o10') // 8
(2)Number.isFinite(), Number.isNaN()
  ES6在Number对象上,新增加两个方法:
    Number.isFinite():是否有限;
    Number.isNaN():是否是NaN;
    Number.isFinite(15); // true Number.isFinite(Infinity); // false
    Number.isNaN(NaN) // true Number.isNaN(15) // false
  与已有全局isFinite()和isNaN()在于不会转为数值,非数值一律false:
    isFinite("25") // true
    Number.isFinite("25") // false
  全局会默认调用Number方法,先转为数值,新增加的方法不会。
(3)Number.parseInt(), Number.parseFloat()
  ES6将全局方法parseInt()和parseFloat(),移植到Number对象上面:
    parseInt('12.34') // 12
    Number.parseInt('12.34') // 12
(4)Number.isInteger()
  ES6新增Number.isInteger() ,来判断是否是整数,同样只对数值有效:
    Number.isInteger(25) // true
    Number.isInteger(25.0) // true
    Number.isInteger("15") // false
(5)Number.EPSILON
  新增加一个极小常量:Number.EPSILON
    Number.EPSILON // 2.220446049250313e-16
  由于浮点数计算,存在误差:
    0.1 + 0.2 // 0.30000000000000004
    0.1+0.2-0.3 // 5.551115123125783e-17
  如果这个误差小于这个常量,我们可以认为是正确答案:
    5.551115123125783e-17 < Number.EPSILON // true
  因此,Number.EPSILON的实质是一个可以接受的误差范围。
(6)Number.isSafeInteger()
  JavaScript能够准确表示的整数范围在-2^53到2^53之间(不含两个端点)
  超过这个范围,无法精确表示这个值;
  因此,ES6新增Number.isSafeInteger()方法,来判断一个整数是否落在这
  个范围内。
    Number.isSafeInteger(9007199254740990) // true
    Number.isSafeInteger('9007199254740990') // false
  只限数值,且只是整数
(7)Math对象的扩展
  新增的与数学相关的方法,只是静态方法,只能在Math对象上调用,以下
  方法都会先使用Number()转化为数值:
    Math.trunc() 去除小数,返回整数;
    Math.sign() 判断一个数是正数、负数、还是零:
      参数为正数,返回+1;
      参数为负数,返回-1;
      参数为0,返回0;
      参数为-0,返回-0;
      其他值,返回NaN。
  Math.cbrt() 返回参数的立方根;
    Math.clz32() js用32位二进制形式表示,此方法返回1个数的前导0有多少:
    Math.clz32(1) // 31
    Math.clz32(1000) // 22
    对于小数,此方法只考虑整数部分。
    Math.clz32(3.2) // 30
  Math.imul() 返回2个数相乘的结果:
    Math.imul(2, 4) // 8
  Math.hypot() 返回所有参数平方和的平方根:
    Math.hypot(3, 4); // 5
(8)指数运算符
  ES6新增指数预算符:**,与Math.pow() 相同:
    2 ** 2 // 4 2 ** 3 // 8
    Math.pow(2,2) //4
  指数运算符可以与等号结合,形成一个新的赋值运算符(**=)
    let b = 4;
    b **= 3;
    // 等同于 b = b * b * b;