你可能会错过的JavaScript ES6 Number和Math功能

  ES6引入了各种数学和数字方法以及属性。在本文中,我们将介绍一些我们可能错过的有用的 Number 和 Math 属性。

  

  新 Number 属性

  Number 对象具有我们可以使用的新属性和方法。

  / Number.EPSILON /

  Number.EPSILON 属性用于比较浮点数是否在四舍五入误差的公差值内。它是一个只读属性。

  它表示1与大于1的最小浮点数之间的差。

  例如,我们可以编写以下代码来使用它:

  const result=Math.abs(0.3 - 0.4 + 0.1);

  console.log(result); // 2.7755575615628914e-17

  console.log(result < Number.EPSILON); // true

  0.3 - 0.4 + 0.1 应该为 0 ,但是由于JavaScript对浮点值的处理,结果为 2.7755575615628914e-17。

  使用 Number.EPSILON,我们可以检查 result 是否是如此之小,以至于像在最后一行中那样接近0。

  / Number.isInteger(num) /

  Number.isInteger 检查给定的 num 是否为整数。例如,我们可以按以下方式使用它:

  Number.isInteger(2.05); // false

  Number.isInteger(2); // true

  / Number.isSafeInteger(number) /

  还有 isSafeInteger 方法来检查JavaScript整数是否在JavaScript可以接受的范围内。该范围由Number.MIN_SAFE_INTEGER 和 Number.MAX_SAFE_INTEGER 的值表示。

  Number.MIN_SAFE_INTEGER 为-9007199254740991,Number.MAX_SAFE_INTEGER 为9007199254740991。

  / Number.isNaN(num) /

  Number.isNaN 检查 num 是否为NaN。与全局 isNaN() 函数不同,此方法不将其参数强制为数字。因此,对于非数字使用它是安全的。

  例如,isNaN('abc') 返回 true,而 Number.isNaN('abc') 返回 false。因此,它实际上是在检查 num 是否真的是 NaN,而不是将值强制为一个数字,并检查强制值是否是 NaN。

  / Number.parseInt(num, radix) /

  Number.parseInt 与全局 parseInt 函数具有相同的作用。它使用要转换的成教数字字符串和基数(即数字将被转换为基数的基数)作为第二个参数。

  例如,我们可以编写以下代码来做到这一点:

  Number.parseInt('11', 8); // 9

  上面的代码返回9,因为我们通过将8作为第二个参数传入来假设字符串是八进制数。

  Number.parseInt 对八进制或二进制数字文字没有特殊支持。例如:

  Number.parseInt('0o11', 8); // 0

  但是,它确实支持将十六进制文字转换为数字。例如,Number.parseInt('0xF') 返回15。因此它知道我们传入的是十六进制数字。

  新 Math 方法

  Math 对象具有用于数字,三角和按位运算的新方法。

  / Math.sign(num) /

  sign方法返回数字的符号。如果我们有一个负数,则返回-1,如果数字为0,则返回0。否则,返回1。

  例如,Math.sign(-2) 返回-1,Math.sign(0) 返回0,Math.sign(6) 返回1。

  / Math.trunc(num) /

  Math.trunc 删除数字的小数部分并返回它。

  例如,Math.trunc(2.1) 返回2,Math.trunc(-2.1) 返回-2,Math.trunc(2.9) 返回2。

  / Math.log10(num) /

  log10 方法计算 num 的以10为底的对数。例如,Math.log10(1000) 是3。

  / Math.hypot(x, y) /

  hypot 计算三角形的下折线的长度,给定横边和竖边的长度分别为 x 和 y。

  例如,Math.hypot(4, 3) 是5。

  

  新整数字面量

  ES6增加了对二进制和八进制文字的支持。要写一个二进制数字,我们给数字加上 0b 前缀,然后写二进制数字。

  例如,我们可以把二进制值3写成 0b11。

  八进制数字以 0o 为前缀。例如,0o11 是9。

  toString 方法需要一个 radix 参数,它可以将一个数字转换为我们想要的基数并返回为字符串。

  例如 (9).toString(8) 是11。

  总结

  ES6为 Number 和 Math 对象引入了许多属性和方法。此外,我们还有新型的数字面量。现在支持二进制和八进制数。

  此外,Number 对象现在具有 parseInt 和 isInteger 方法。我们还可以使用 Number.EPLISON 属性检查某个值是否足够接近0,这是一个非常小的数字。

  Number 还具有 isNaN 和 isSafeInteger 方法来检查 NaN 而不进行转换,还有 isSafeInteger 方法来检查整数是否在JavaScript可以接受的范围内。

  Math方法包括使用 sign 方法获取数字的符号,使用 trunc 截断数字以及使用 log10 获取以10为底的对数。

  如果对你有所启发和帮助,可以点个关注、收藏、转发,也可以留言讨论,这是对作者的最大鼓励。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值