数值的扩展
一.Number规范化的方法
-
在ES6中,为了减少全局性方法,逐步的实现模块化,所以将数字有关的方法移植到Number对象上
- Number.isNaN():判断是否为非数字
- Number.isFinite():判断数值是否是有限的
- Number.parseInt():将数字转换为整数
- Number.parseFloat():将数字转换为浮点数
-
在传统的JavaScript中,isNaN和isFinite可以将参数的字符串准换为数字,然后进行判断
isNaN("123"); //false isNaN(123); //false isNaN('NaN'); //true isFinite('25') //true
-
在ES6的Number对象中
-
与传统方法不同的是,isNaN和isFinite不会将字符串转换为数值,再去做判断
-
isNaN的参数只要不为数值,一律返回false
-
isFinite的参数只要不为数值,一律返回false
isNaN(NaN); //true isNaN('NaN'); //true Number.isNaN(NaN); //true Number.isNaN('NaN'); //false isFinite('88'); //true isFinite(88); //true Number.isFinite('88'); //false number.isFinite(88); //true
-
-
对于parseInt和parseFloat方法,和传统方法保持一致
二.Number新增的方法
-
Number.isInteger()
-
用来判断数字是否为整数
-
如果参数不是数值,直接返回false
-
注意:小数位为0的浮点数,也被认为是整数
Number.isInteger('25'); //false Number.isInteger(25.0); //true Number.isInteger(25.5); //fasle Number.isInteger(25); //true
-
-
Number.isSafeInteger()
- JavaScript能够准备表示 -2^53到 2^53 之间,超出这个范围,无法准确的表示这个值
- ES6新增了 Number.MAX_SAFE_INTEGER 和 MIN_SAFE_INTEGER这两个常量,用来表示这个范围
- Number.isSafeInteger方法即是用来判断当前所给数字是否在这个范围
-
Number.EPSILON
- ES6在Number上面,新增一个极小的常量
- 该变量实质上是一个可以接受的最小误差范围
- 如果两个浮点数的插值小于这个值,我们就可以认为这两个浮点数相等
三.Math对象的扩展
ES6为Math对象新增了17个与数学有关的方法,这里挑几个常用的,做个简单的介绍
- Math.trunc():用于去除一个数的小数部分
- Math.sign():用来判断一个数是正数(1),负数(-1),还是0(0)
- ...具体的,需要用到的时候,具体去了解
总结
- ES6将一些数值的处理方法移植到了Number对象,为了逐步实现模块化,减少全局的方法
- Number.isNaN()
- Number.isFinite()
- Number.parseInt()
- Number.parseFloat()
- ES6为Number对象新增了一些方法,
- Number.isInteger():判断数值是否为整数
- Number.isSafeInteger():判断数值是否为安全范围内的整数
- Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER 两个常量用来表示最大和最小的安全数
- Number.EPSILON:用来表示一个极小的常量,表示浮点数计算之间的最小误差范围
- ES6为Math新增了17个数学有关的方法,具体情况用到时,再去查询即可