随着 ES6 的推出,JavaScript 引入了更多的新特性和新方法,其中 Math 和 Number 的增强方法也得到了大幅度提升。本文将介绍ES6中的 Math 和Number 增强方法,包括其用法和示例。
Math 的增强方法
1. Math.trunc()
Math.trunc() 方法用于去除一个数字的小数部分,返回整数部分。示例如下:
console.log(Math.trunc(4.9)); // 4 console.log(Math.trunc(-4.9)); // -4
2. Math.sign()
Math.sign() 方法用于判断一个值是正数还是负数,返回值为 1、-1 或 0。示例如下:
console.log(Math.sign(2)); // 1 console.log(Math.sign(-2)); // -1 console.log(Math.sign(0)); // 0
3. Math.cbrt()
Math.cbrt() 方法用于计算一个数的立方根。示例如下:
console.log(Math.cbrt(8)); // 2 console.log(Math.cbrt(-8)); // -2
4. Math.clz32()
Math.clz32() 方法用于计算一个数字的 32 位补码形式的前导零位数。示例如下:
console.log(Math.clz32(2)); // 31 console.log(Math.clz32(3)); // 30 console.log(Math.clz32(0)); // 32
5. Math.imul()
Math.imul() 方法用于计算两个数的 32 位整数乘积,返回值为一个 32 位的带符号整数。示例如下:
console.log(Math.imul(2, 3)); // 6 console.log(Math.imul(-1, 8)); // -8
Number 的增强方法
1. Number.isNaN()
Number.isNaN() 方法用于判断一个值是否为 NaN。示例如下:
console.log(Number.isNaN(NaN)); // true console.log(Number.isNaN('test')); // false
2. Number.isFinite()
Number.isFinite() 方法用于判断一个值是否为有限数值,返回值为布尔值。示例如下:
console.log(Number.isFinite(3)); // true console.log(Number.isFinite(Infinity)); // false
3. Number.isInteger()
Number.isInteger() 方法用于判断一个值是否为整数,返回值为布尔值。示例如下:
console.log(Number.isInteger(3)); // true console.log(Number.isInteger(3.1)); // false
4. Number.isSafeInteger()
Number.isSafeInteger() 方法用于判断一个值是否为安全的整数,即在 [-(2^53 - 1), 2^53 - 1] 的范围内(包括两端)的整数。示例如下:
console.log(Number.isSafeInteger(9007199254740991)); // true console.log(Number.isSafeInteger(9007199254740992)); // false
5. Number.EPSILON
Number.EPSILON 属性表示 1 与大于 1 的最小浮点数之间的差。示例如下:
console.log(Number.EPSILON); // 2.220446049250313e-16
上述的 Math 和 Number 增强方法在实际中的应用非常广泛,可以帮助我们更好地开发 JavaScript 应用程序。需要注意的是,其中有些方法并不兼容低版本的浏览器,因此在选择使用时需要谨慎,或者使用 polyfill 进行兼容。
总结
本文介绍了 ES6 中 Math 和 Number 的增强方法,包括 Math.trunc()、Math.sign()、Math.cbrt()、Math.clz32()、Math.imul()、Number.isNaN()、Number.isFinite()、Number.isInteger()、Number.isSafeInteger()、Number.EPSILON。这些方法的增强有助于更好地开发 JavaScript 应用程序,提高我们的编程效率和代码质量。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6539fc817d4982a6eb3af207