數值的擴充套件
二進位制和八進位制表示法
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