數值的擴充套件

數值的擴充套件

數值的擴充套件

二進位制和八進位制表示法

ES6 提供了二進位制和八進位制數值的新的寫法,分別用字首0b(或0B)和0o(或0O)表示

Number。isFinite(), Number。isNaN()

Number。isFinite()用來檢查一個數值是否為有限的(finite),即不是Infinity

Number。isNaN()用來檢查一個值是否為NaN,如果引數型別不是NaN,Number。isNaN一律返回false

傳統方法先呼叫Number()將非數值的值轉為數值,再進行判斷,而這兩個新方法只對數值有效

Number。isFinite()對於非數值一律返回false, Number。isNaN()只有對於NaN才返回true,非NaN一律返回false

Number。parseInt(), Number。parseFloat()

ES6 將全域性方法parseInt()和parseFloat(),移植到Number物件上面,行為完全保持不變

Number。isInteger()

Number。isInteger()用來判斷一個數值是否為整數

JavaScript 內部,整數和浮點數採用的是同樣的儲存方法,所以 25 和 25。0 被視為同一個值

Number。EPSILON

ES6 在Number物件上面,新增一個極小的常量Number。EPSILON。根據規格,它表示 1 與大於 1 的最小浮點數之間的差

Number。EPSILON實際上是 JavaScript 能夠表示的最小精度。誤差如果小於這個值,就可以認為已經沒有意義了,即不存在誤差了

安全整數和 Number。isSafeInteger()

JavaScript 能夠準確表示的整數範圍在-2^53到2^53之間(不含兩個端點),超過這個範圍,無法精確表示這個值

Number。isSafeInteger()則是用來判斷一個整數是否落在這個範圍之內

Math 物件的擴充套件

ES6 在 Math 物件上新增了 17 個與數學相關的方法。所有這些方法都是靜態方法,只能在 Math 物件上呼叫

Math。trunc方法用於去除一個數的小數部分,返回整數部分

Math。sign方法用來判斷一個數到底是正數、負數、還是零

Math。cbrt方法用於計算一個數的立方根

JavaScript 的整數使用 32 位二進位制形式表示,Math。clz32方法返回一個數的 32 位無符號整數形式有多少個前導 0

Math。imul方法返回兩個數以 32 位帶符號整數形式相乘的結果,返回的也是一個 32 位的帶符號整數

Math。fround方法返回一個數的32位單精度浮點數形式

Math。hypot方法返回所有引數的平方和的平方根

Math。expm1(x)返回 ex - 1,即Math。exp(x) - 1

Math。log1p(x)方法返回1 + x的自然對數,即Math。log(1 + x)。如果x小於-1,返回NaN

Math。log10(x)返回以 10 為底的x的對數。如果x小於 0,則返回 NaN

Math。log2(x)返回以 2 為底的x的對數。如果x小於 0,則返回 NaN

Math。sinh(x) 返回x的雙曲正弦(hyperbolic sine)

Math。cosh(x) 返回x的雙曲餘弦(hyperbolic cosine)

Math。tanh(x) 返回x的雙曲正切(hyperbolic tangent)

Math。asinh(x) 返回x的反雙曲正弦(inverse hyperbolic sine)

Math。acosh(x) 返回x的反雙曲餘弦(inverse hyperbolic cosine)

Math。atanh(x) 返回x的反雙曲正切(inverse hyperbolic tangent)

指數運算子

ES2016 新增了一個指數運算子(**)

指數運算子可以與等號結合,形成一個新的賦值運算子(**=)

8