# 5.数值的扩展
1.二进制和八进制表示法
ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。
如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法。
console.log(Number('0o111')) // 73
2.Number.isFinite(), Number.isNaN()
ES6在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法。这两个新方法只对数值有效,非数值一律返回false。
Number.isFinite()用来检查一个数值是否为有限的(finite)。
Number.isNaN()用来检查一个值是否为NaN。
Number.parseInt()
Number.parseFloat()
Number.isInteger()用来判断一个值是否为整数。需要注意的是,在JavaScript内部,整数和浮点数是同样的储存方法,所以3和3.0被视为同一个值。
Number.EPSILON的实质是一个可以接受的误差范围。
Number.isSafeInteger():JavaScript能够准确表示的整数范围在-2^53~2^53之间(不含两个端点),超过这个范围,无法精确表示这个值。ES6引入了Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER这两个常量,用来表示这个范围的上下限。
Number.isSafeInteger()则是用来判断一个整数是否落在这个范围之内。
3.Math对象的扩展
Math.trunc()方法用于去除一个数的小数部分,返回整数部分。
Math.sign()方法用来判断一个数到底是正数、负数、还是零。它会返回五种值。参数为正数,返回+1;参数为负数,返回-1;参数为0,返回0;参数为-0,返回-0;其他值,返回NaN。Math.sign()用来判断一个值的正负,但是如果参数是-0,它会返回-0。
Math.cbrt()方法用于计算一个数的立方根。
Math.fround()方法返回一个数的单精度浮点数形式。
Math.hypot()方法返回所有参数的平方和的平方根。
4.对数方法
Math.expm1(x)返回ex - 1,即Math.exp(x) - 1。 注意是m1不是ml
Math.log1p(x)方法返回1 + x的自然对数,即Math.log(1 + x)。如果x小于-1,返回NaN。
Math.log10(x)返回以10为底的x的对数。如果x小于0,则返回NaN。
Math.log2(x)返回以2为底的x的对数。如果x小于0,则返回NaN。
5.指数运算符
ES2016 新增了一个指数运算符(**)。
2**3 === 8 // true