在es6中对数值的修改主要集中在三个方便,第一是将原在window对象
下的函数移植到了Number对象下,逐渐的实现语言的模块化,第二是新增了部分Number对象的函数,第三是es6给Math对象新增了17个函数;这一节我们来对这三个方面进行介绍。
将window对象移植到Number对象:
Number.isNaN()函数:
Number.isNaN(2.5);
//false
Number.isNaN()是用来判断是不是非数值的,这里的2.5是数值,所以返回的布尔值是false
Number.isFinite()函数:
用来检查一个数值是否非无穷。注意是判断非无穷,不是判断无穷,
Number.isFinite(1);
//结果:true,数值1是有穷,即非无穷
Number.isFinite(Infinity);
//结果:false,Infinity表示无穷大的特殊值
Number.parseInt()函数:
解析一个字符串,返回一个整数。
parseInt函数同样是从window对象下移植到Number对象下,但是它的作用没有任何变化。
Number.parseInt('12.3abc');
//结果:返回数值12
Number.parseFloat()函数:解析一个字符串,返回一个浮点数。
parseFloat函数同样是从window对象下移植到Number对象下,但是它的作用没有任何变化。
Number.parseFloat('12.3abc');
//结果:返回数值12.3
以上4个函数就是从window对象移植到Number对象的。
我们再来讲述一下Number新增的对象
Number.isInteger函数:用来判断是否是整数。
Number.isInteger(6.666);
//结果:false
Number.isInteger(6);
//结果:true
Number.EPSILON常量:定义一个极小的数值。
console.log(Number.EPSILON);
//结果:2.220446049250313e-16
Number.EPSILON的出现是用来判断浮点数的计算误差,如果浮点数计算得到的误差不超过Number.EPSILON的值,就表示可以接受这样的误差。
ES6为我们引入了安全整数的概念。什么?整数还有安全和不安全的说法?原来JavaScript能够准确表示的整数范围在-253到253之间,超过这个范围,无法精确表示这个值。故称之为不安全。
为此,ES6定义了两个常量来表示这个范围的最大值和最小值:Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER。此外,如果给你一个数值,你不知道它是否超出了这个安全范围,你可以使用ES6给我们新增的一个函数Number.isSafeInteger来进行判断。看例子:
Number.isSafeInteger(Number.MAX_SAFE_INTEGER);
//结果:true
Number.isSafeInteger(Number.MAX_SAFE_INTEGER+1);
//结果:false
ES6给Math对象新增了17个函数
Math.trunc(x)函数:用于去除一个数的小数部分,返回整数部分。
Math.sign(x)函数:用来判断一个数到底是正数、负数、还是零。
Math.cbrt(x)函数:用于计算一个数的立方根。
Math.acosh(x) 返回 x 的反双曲余弦。
Math.asinh(x) 返回 x 的反双曲正弦。
Math.atanh(x) 返回 x 的反双曲正切。
Math.clz32(x) 返回 x 的 32 位二进制整数表示形式的前导 0 的个数。
Math.sinh(x) 返回x的双曲正弦。
Math.cosh(x) 返回 x 的双曲余弦。
Math.expm1(x) 返回 eˆx - 1。
Math.fround(x) 返回 x 的单精度浮点数形式。
Math.hypot(...values) 返回所有参数的平方和的平方根。
Math.imul(x, y) 返回两个参数以 32 位整数形式相乘的结果。
Math.log1p(x) 返回 1 + x 的自然对数。
Math.log10(x) 返回以 10 为底的x的对数。
Math.log2(x) 返回以 2 为底的 x 的对数。
Math.tanh(x) 返回 x 的双曲正切。
以上就是新增的17个函数;
这一节就到这里,每天都要学习,每天都要进步,一起debug吧!