1. 二進制和八進制表示法
ES6提供了二進制和八進制的新寫法,分別用前綴0b(或0B)和0o(或0o)表示。
- 將0b和0o前綴的字符串數值轉為十進制,要使用Number方法。
Number('0b111'); //7
2. Number.isFinite(),Number.isNaN()
- Number.isFinite()用來檢查一個數值是否為有限的(finite)
- Number.isNaN()用來檢查一個值是否為NaN
注意:兩個方法與傳統的isFinite()和isNaN()方法區別在于,傳統方法先調用Number()將非數值的值轉為數值,再判斷。這兩個方法只對數值有效,非數值一律返回false。
3. Number.parseInt(),Number.parseFloat()
與傳統方法行為完全保持不變。目的在于,逐步減少全局性方法,使得語言逐步模塊化。
4. Number.isInteger()
判斷一個值是否為整數。
注意:JavaScript內部,整數和浮點數儲存方法相同,所以3和3.0被視為同一個值。
5. Number.EPSILON
ES6中新增的一個極小的常量。
Number.EPSILON = 2.220446049250313e-16;
- 目的在于,設置誤差范圍。當誤差小于該值,則認為得到正確結果。
6. 安全整數和Number.isSafeInteger()
JavaScript能夠準確表示的整數范圍在-2^53
到2^53之間(不含兩個端點),超過這個范圍,無法精確表示這個值。
- ES6引入了Number.MAX_SAFE_INTEGER
和Number.MIN_SAFE_INTEGER這兩個常量,用來表示這個范圍的上下限 - Number.isSafeInteger()則是用來判斷一個整數是否落在這個范圍之內。
7. Math對象的擴展
Math.trunc()
該方法用于去除一個數的小數部分,返回整數部分。
對于非數值,先轉成數值。
對于空置和無法截取整數的值,返回NaN.
Math.sign()
-
該方法用于判斷一個數是正數、負數還是0.
- 正數,返回+1
- 負數,返回-1
- 0,返回0
- -0,返回-0
- 其他值,返回NaN
Math.cbrt()
該方法用于計算一個數的立方根。
對于非數值,先轉為數值再計算。
Math.clz32()
該方法返回一個數的32位無符號整數形式有多少個前導0.
對于小數,只考慮整數部分。
對于空置或者其他類型的值,先轉為數值,再計算。
Math.fround()
返回一個數的單精度浮點數形式
Math.hypot()
該方法返回所有參數的平方和的平方根
參數不是數值,先轉為數值,有一個無法轉為數值,就返回NaN
對數方法
-
Math.expm1()
- 返回e的x次方 - 1,即Math.exp(x) - 1
-
Math.log1p()
- 返回1+x的自然對數。即Math.log(1 + x)。如果x小于-1,返回NaN
-
Math.log10()
- 返回以10為底的x的對數,如果x<10,則返回NaN.
-
Math.log2()
- 返回以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)
8. 指數運算符
- 指數運算符**
2 ** 2 //4
2 ** 3 //8
- 與等號結合,**=
let a = 2
a **= 2 //a = 4