1. 程式人生 > 實用技巧 >你可能會錯過的ES6數字和數學功能

你可能會錯過的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為底的對數。