ES6引入了各类数学和数字方法以及属性。在本文中,咱们将介绍一些咱们可能错过的有用的 Number
和 Math
属性。javascript
Number
对象具备咱们能够使用的新属性和方法。前端
Number.EPSILON
属性用于比较浮点数是否在四舍五入偏差的公差值内。它是一个只读属性。java
它表示1与大于1的最小浮点数之间的差。git
例如,咱们能够编写如下代码来使用它:es6
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
是否为整数。例如,咱们能够按如下方式使用它:spa
Number.isInteger(2.05); // false Number.isInteger(2); // true
还有 isSafeInteger
方法来检查JavaScript整数是否在JavaScript能够接受的范围内。该范围由Number.MIN_SAFE_INTEGER
和 Number.MAX_SAFE_INTEGER
的值表示。翻译
Number.MIN_SAFE_INTEGER
为-9007199254740991,Number.MAX_SAFE_INTEGER
为9007199254740991。code
Number.isNaN
检查 num
是否为NaN。与全局 isNaN()
函数不一样,此方法不将其参数强制为数字。所以,对于非数字使用它是安全的。
例如,isNaN('abc')
返回 true
,而 Number.isNaN('abc')
返回 false
。所以,它其实是在检查 num
是否真的是 NaN
,而不是将值强制为一个数字,并检查强制值是不是 NaN
。
Number.parseInt
与全局 parseInt
函数具备相同的做用。它使用要转换的数字字符串和基数(即数字将被转换为基数的基数)做为第二个参数。
例如,咱们能够编写如下代码来作到这一点:
Number.parseInt('11', 8); // 9
上面的代码返回9,由于咱们经过将8做为第二个参数传入来假设字符串是八进制数。
Number.parseInt
对八进制或二进制数字文字没有特殊支持。例如:
Number.parseInt('0o11', 8); // 0
可是,它确实支持将十六进制文字转换为数字。例如,Number.parseInt('0xF')
返回15。所以它知道咱们传入的是十六进制数字。
Math
对象具备用于数字,三角和按位运算的新方法。
sign方法返回数字的符号。若是咱们有一个负数,则返回-1,若是数字为0,则返回0。不然,返回1。
例如,Math.sign(-2)
返回-1,Math.sign(0)
返回0,Math.sign(6)
返回1。
Math.trunc
删除数字的小数部分并返回它。
例如,Math.trunc(2.1)
返回2,Math.trunc(-2.1)
返回-2,Math.trunc(2.9)
返回2。
log10
方法计算 num
的以10为底的对数。例如,Math.log10(1000)
是3。
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为底的对数。
来源:https://levelup.gitconnected.com,做者:John Au-Yeung,翻译:公众号《前端全栈开发者》