[TOC]
ES6在数值Number方面改动:
- 新增二进制、八进制表示法
- 新增判断api
1、Number.isFinite()
2、Number.isNaN()
3、Number.isInterger()
4、Number.isSafeInterger() - Math扩展
- Math.trunc()
- Math.sign()
- 其他常用
新增二进制、八进制表示法
ES6 提供了二进制和八进制数值的新的写法
- 二进制:用前缀0b(或0B)表示,开头第一个是零。 0b0111 ===7 // true
- 八进制:用前缀0o(或0O)表示,开头第一个是零。0o767 === 503 // true
新增判断api
1、Number.isFinite()
(1)与传统的全局方法isfIinite()
区别在于:传统方法是先调用Number()强制将非数值转化成数值再判断,ES6中Number.isFinite()
不会自动做转化,对于非数值一律返回false
(2)ES5实现:
2、Number.isNaN()
(1)与传统的全局方法isNaN()
区别在于:传统方法是先调用Number()强制将非数值转化成数值再判断,ES6中Number.isNaN()
不会自动做转化,对于非NaN一律返回false
(2)ES5实现:
3、Number.isInterger()
判断一个值是否为整数,注意同一个整数用整数和浮点数是同样的存储方法
4、Number.isSafeInterger()
JavaScript 能够准确表示的整数范围在-2^53到2^53之间(不含两个端点),超过这个范围,无法精确表示这个值。
ES6 引入了Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER这两个常量,用来表示这个范围的上下限。
Number.isSafeInteger()则是用来判断一个整数是否落在这个范围之内,非数值不会自动转换。
Math扩展
Math.trunc()
用于去除一个数的小数部分,返回整数部分
12Math.trunc(4.1) //4Math.trunc(-4.1) //-4对于非数值,Math.trunc内部使用Number方法将其先转为数值
- 对于空值和无法截取整数的值,返回NaN
- 对于没有部署这个方法的环境,可以用下面的代码模拟。123Math.trunc = Math.trunc || function(x) {return x < 0 ? Math.ceil(x) : Math.floor(x);};
Math.sign()
Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。
它会返回五种值:
参数为正数,返回+1;
参数为负数,返回-1;
参数为 0,返回0;
参数为-0,返回-0;
其他值,返回NaN。
其他常用
1、指数运算符:ES2016 新增了一个指数运算符**
a**=b
表示a的b次方