es6学习笔记-数值的扩展_V1.0_byKL

发布时间:2019-08-09 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了es6学习笔记-数值的扩展_V1.0_byKL脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

es6学习笔记-数值的扩展

有一些不常用或者还不支持的就没有记录了,总体来说本篇只是一个备忘而已

Number.isFinITe(), Number.isNaN()

Number.isFinite()用来检查一个数值是否为有限的(finite)。

console.LOG(Number.isFinite(15)); // true
console.log(Number.isFinite(0.8)); // true
console.log(Number.isFinite(NaN)); // false
console.log(Number.isFinite(Infinity)); // false
console.log(Number.isFinite(-Infinity)); // false
console.log(Number.isFinite('foo')); // false,字符串也是false
console.log(Number.isFinite('15')); // false
console.log(Number.isFinite(true)); // false,布尔值也是false

Number.isNaN()用来检查一个值是否为NaN

console.log(Number.isNaN(NaN)) // true
console.log(Number.isNaN(15)) // false
console.log(Number.isNaN('15')) // false
console.log(Number.isNaN(true)) // false
console.log(Number.isNaN(9/NaN)) // true
console.log(Number.isNaN('true'/0)) // true
console.log(Number.isNaN('true'/'true')) // true

两个新方法只对数值有效,非数值一律返回false

parseInt()和parseFloat()

ES6将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。

// ES5的写法
parseint('12.34') // 12
parseFloat('123.45#') // 123.45

// ES6的写法
Number.parseInt('12.34') // 12

Number.isInteger()

Number.isInteger()用来判断一个值是否为整数。需要注意的是,在JavaScript内部,整数和浮点数是同样的储存方法,所以3和3.0被视为同一个值。

console.log(Number.isInteger(25)) // true
console.log(Number.isInteger(25.0)) // true
console.log(Number.isInteger(25.1)) // false
console.log(Number.isInteger("15")) // false
console.log(Number.isInteger(true)) // false

Number.EPSILON

  • ES6在Number对象上面,新增一个极小的常量Number.EPSILON,为浮点数计算,设置一个误差范围。

  • 如果这个误差能够小于Number.EPSILON,我们就可以认为得到了正确结果。

0.1 + 0.2
// 0.30000000000000004

0.1 + 0.2 - 0.3
// 5.551115123125783e-17

5.551115123125783e-17.toFixed(20)
// '0.00000000000000005551' //无限接近0

Number.EPSILON.toFixed(20)
// '0.00000000000000022204' //只要比这个数小,我们就当他是正确的


function withinErrorMargin (left, right) {
    return Math.abs(left - right) < Number.EPSILON;
}
console.log(withinErrorMargin(0.1 + 0.2, 0.3))
// true
console.log(withinErrorMargin(0.2 + 0.2, 0.3))
// false

安全整数和Number.isSafeInteger()

JavaScript能够准确表示的整数范围在-2^53到2^53之间(不含两个端点),超过这个范围,无法精确表示这个值。

console.log(Math.pow(2, 53)); // 9007199254740992
console.log(Number.MAX_SAFE_INTEGER === Math.pow(2, 53) + 1)//false
console.log(Number.MAX_SAFE_INTEGER === Math.pow(2, 53) - 1) //true,等于一个比最大范围少于1的数

同理可鉴Number.MAX_SAFE_INTEGER

Number.isSafeInteger()则是用来判断一个整数是否落在这个范围之内。

console.log(Number.isSafeInteger(Number.MIN_SAFE_INTEGER - 1)) // false
console.log(Number.isSafeInteger(Number.MIN_SAFE_INTEGER)) // true
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER)) // true
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1)) // false

Math对象的扩展

Math.trunc

Math.trunc方法用于去除一个数的小数部分,返回整数部分

console.log(Math.trunc(4.1)) // 4
console.log(Math.trunc(4.9)) // 4
console.log(Math.trunc(-4.1)) // -4
console.log(Math.trunc(-4.9)) // -4
console.log(Math.trunc(-0.1234)) // -0

Math.sign()

Math.sign方法用来判断一个数到底是正数、负数、还是零。

console.log(Math.sign(-5)) // -1
console.log(Math.sign(5)) // 1
console.log(Math.sign(0)) // 0
console.log(Math.sign(-0)) // -0
console.log(Math.sign(NaN)) // NaN
console.log(Math.sign('foo')); // NaN
console.log(Math.sign());      // NaN

参考引用:

  1. es6数值扩展

脚本宝典总结

以上是脚本宝典为你收集整理的es6学习笔记-数值的扩展_V1.0_byKL全部内容,希望文章能够帮你解决es6学习笔记-数值的扩展_V1.0_byKL所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。