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,翻譯:公衆號《前端全棧開發者》