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