整理学习——ES6数值的扩展

二进制、八进制表示

二进制

0b前缀

八进制

0o前缀

转为10进制

使用Number()即可

Number.isFinite()、Number.isNaN()

Number.isFinite()

用来检查一个数值是否有限

Number.isNaN()

检查一个值是否为NaN

与传统方法的区别

传统方法先调用Number(),将非数值转为数值再进行判断。而Number下的两个函数则是只对数值进行判断。

isFinite("25");
//result: true
Number.isFinite("25");
//result: false
Number.isFinite(25);
//result: true

Number.parseInt()、Number.Float()

将全局方法移植到Number对象上,用法返回保持不变。
为了减少全局性方法,使语言逐步模块化。

Number.parseInt("12.34");
//result: 12
Number.parseFloat("12.34#");
//result: 12.34

Number.isInteger()

判断一个值是否为整数。
在JavaScript内部,整数和浮点数的存储方法相同。所以

Number.isInteger(3.0);
//result: true
Number.isInteger(3);
//result: true

Number.EPSILON

极小量,可接受的误差范围
目的在于为浮点数计算设置一个误差范围。当计算结果小于这个误差范围就可以认为是得到了正确结果。

安全整数和Number.isSafeInteger()

安全整数

Number.MAX_SAFE_INTEGER:整数范围上限253 - 1
Number.MIN_SAFE_INTEGER:整数范围下限-253 + 1

Number.isSafeInteger()

判断一个整数是否是安全整数。
如果要验证运算结果是否在安全整数的范围内,那么需要验证参与运算的所有的值及结果。

9007199254740993 === 9007199254740992
//result: true

Math对象扩展

Math.trunc()

去除数的小数部分,返回整数部分
对空值和无法截取整数的值,返回NaN

Math.sign()

判断一个数是正数/负数/0

console.log(
	Math.sign(1),
	Math.sign(-1),
	Math.sign(0),
	Math.sign(-0),
	Math.sign()
);
//Output: 1 -1 0 -0 NaN

Math.cbrt()

计算一个数的立方根。
对于非数值,先使用Number()转为数值再进行计算。

Math.clz32()

返回一个数的32位无符号整数形式有多少个前导0。
名字来源:”count leading zero bits in 32-bit binary representations of a number“
对于小数,该函数只考虑整数部分。
对于空值和其他类型的函数,会将其转为数值,再进行计算。

Math.clz32('0')
//result: 32

Math.imul()

返回两个数以32位带符号整数相乘的结果,返回的也是一个32位的带符号整数。
对于大数相乘,JavaScript的精度无法正确显示,超过253的值无法精确表示,低位的数值不精确。使用该方法可以返回正确的低位数值

(0x7fffffff * 0x7fffffff)|0
//result: 0
Math.imul(0x7fffffff , 0x7fffffff)
//result: 1

Math.fround()

返回一个数的单精度浮点数形式

Math.fround(1.33);
//result: 1.3300000429153442

Math.hypot()

返回所有参数的平方和的平方根
(其实类似于已知直角三角形的相邻边长度,求斜边的长度。)
如果参数不是数值,会将其转为数值后计算。
只要有一个参数无法转为数值,就会返回NaN

Math.hypot(3, 4);
//result: 5
Math.hypot(6, 8);
//result: 10
Math.hypot(1,3,4,5)
//result: 7.1414284285428495

对数方法

Math.expm1(x)

返回ex-1,即

Math.exp(x) - 1

Math.log1p(x)

返回1 + x的自然对数,即Math.log(1 + x),如果x < -1 返回NaN

Math.log(1 + x);

Math.log10(x)

返回以10为底的x的对数
如果x< 0 ,则返回NaN

Math.log(x) / Math.LN10

Math.log2(x)

返回以2为底的x的对数,如果x<0,则返回NaN

Math.log(x) / Math.LN2

三角函数方法

Math.sinh(x)

返回x的双曲正弦

Math.cosh(x)

返回x的双曲余弦

Math.tanh(x)

返回x的双曲正切

Math.sin(x)

返回x的正弦值

Math.cos(x)

返回x的余弦值

Math.tan(x)

返回x的正切值
整理来源:http://caibaojian.com/es6/number.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值