天天看點

【ES6】ES6學習六:數值的擴充

一、二進制和八進制表示法

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

0b111110111 === 503 // true
0o767 === 503 // true
           

如果要将0b和0o字首的字元串數值轉為十進制,要使用Number方法。

Number('0b111')  // 7
Number('0o10')  // 8
           

二、Number.isFinite()、Number.isNaN()

1、Number.isFinite():用來檢查一個數值是否為有限的。如果參數類型不是數值,一律傳回false。

Number.isFinite(15); // true
Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
           

2、Number.isNaN():用來檢查一個值是否為NaN。如果參數類型不是NaN,Number.isNaN一律傳回false。

Number.isNaN(NaN) // true
Number.isNaN(9/NaN) // true
Number.isNaN(15) // false
Number.isNaN('15') // false
Number.isNaN(true) // false
           

三、Number.isInteger()

用來判斷一個數值是否為整數。如果參數不是數值,Number.isInteger傳回false。

Number.isInteger(25) // true
Number.isInteger(25.1) // false
Number.isInteger('15') // false
           

 JavaScript 内部,整數和浮點數采用的是同樣的儲存方法,是以 25 和 25.0 被視為同一個值。

Number.isInteger(25) // true
Number.isInteger(25.0) // true
           

 說明:如果對資料精度的要求較高,不建議使用它來判斷一個數值是否為整數。

四、Number.parseInt()、 Number.parseFloat()

ES6 将全局方法parseInt()和parseFloat(),移植到Number對象上面,行為完全保持不變。這樣做的目的,是逐漸減少全局性方法,使得語言逐漸子產品化。

// ES5的寫法
parseInt('12.34') // 12
parseFloat('123.45#') // 123.45

// ES6的寫法
Number.parseInt('12.34') // 12
Number.parseFloat('123.45#') // 123.45
           

五、Number.EPSILON

ES6 在Number對象上面,新增一個極小的常量Number.EPSILON。實際上是 JavaScript 能夠表示的最小精度。誤差如果小于這個值,就可以認為已經沒有意義了,即不存在誤差了。

es6