你可能會錯過的ES6數字和數學功能
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。
廣州vi設計公司 http://www.maiqicn.com 我的007辦公資源網 https://www.wode007.com
總結
ES6為Number和Math物件引入了許多屬性和方法。此外,我們還有新型的數字面量。現在支援二進位制和八進位制數。
此外,Number物件現在具有parseInt和isInteger方法。我們還可以使用Number.EPLISON屬性檢查某個值是否足夠接近0,這是一個非常小的數字。
Number還具有isNaN和isSafeInteger方法來檢查NaN而不進行轉換,還有isSafeInteger方法來檢查整數是否在JavaScript可以接受的範圍內。
Math方法包括使用sign方法獲取數字的符號,使用trunc截斷數字以及使用log10獲取以10為底的對數。