es6数值详解:你知道多少?

分类:知识百科 日期: 点击:0

ES6 数值

ES6 中新增了一些数值类型,比如 Number.EPSILON,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER 等,用于更方便的处理数值。

Number.EPSILON

Number.EPSILON 是一个介于 0 与 1 之间的小数,表示 1 与任何比 1 大的数之间的最小差值,它的值为 2-52,即 2.220446049250313e-16。

console.log(Number.EPSILON);
// 2.220446049250313e-16

由于 JavaScript 中的浮点数有精度限制, Number.EPSILON 可以用来判断两个浮点数是否相等:

function isEqual(x, y) {
  return Math.abs(x - y) < Number.EPSILON;
}

console.log(isEqual(0.1 + 0.2, 0.3));
// true

Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER

Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER 表示在 JavaScript 中可以安全使用的最大和最小整数,它们的值分别为 9007199254740991 和 -9007199254740991。

console.log(Number.MAX_SAFE_INTEGER);
// 9007199254740991

console.log(Number.MIN_SAFE_INTEGER);
// -9007199254740991

它们可以用来检测一个整数是否落在安全范围内:

function isSafeInteger(num) {
  return (
    Number.isSafeInteger(num) &&
    num <= Number.MAX_SAFE_INTEGER &&
    num >= Number.MIN_SAFE_INTEGER
  );
}

console.log(isSafeInteger(Number.MAX_SAFE_INTEGER));
// true

Number.isInteger()

Number.isInteger() 方法可以用来判断一个数值是否为整数:

console.log(Number.isInteger(1));
// true

console.log(Number.isInteger(1.1));
// false

它的行为与内置的全局函数 isInteger() 不同,它可以正确处理超出安全范围的整数:

console.log(Number.isInteger(3.0000000000000002));
// true

console.log(Number.isInteger(3.0000000000000003));
// true

console.log(Number.isInteger(3.0000000000000004));
// false

Number.isSafeInteger()

Number.isSafeInteger() 方法用来判断一个数值是否为安全整数,它的行为与 Number.isInteger() 类似,但只有在落在安全范围内的整数才会返回 true:

console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER));
// true

console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1));
// false
标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。