ES6入門系列二(數值的擴展)

ES6 在 Number對象上新增了不少方法javascript

1 .    Number.isFinite()判斷是否爲有限的數字java

  和全局的isFinite() 方法的區別是模塊化

  isFinite('1') === true    ;    Number.isFinite('1') === false對象

  全局的isFinite()先調用Number() 方法  把  變量 轉化爲數字再進行判斷, 因此返回 true,ip

  Number.isFinite()只能判斷數字, 對於非數字一概返回falseit

 

2  ,  Number.isNaN() 判斷是否爲NAN,變量

  只有NaN 才返回true, 不然返回false數據類型

 

3 , ES6 把全局的parseInt()和parseFloat()   移植到了Number對象上,但行爲保持不變,方法

 是爲了逐步減小全局方法, 使語言逐漸模塊化數據

 

4  , Number.isInterger()判斷是否爲整數,  注意一點,javascript內部整數和浮點數是一樣的存儲方法  

    因此Number.isInteger(2) === Number.isInteger(2.0) 

 

5,  Number.EPSILON是一個極小常量, 通常來講, 差值小於這個極小常量的兩個數咱們就認爲是相等的

  由於JavaScript浮點數的計算不精確,0.1+ 0.2 = 0.30000000000000004

  若是 Math.abs(0.1+ 0.2 - 0.3)  < Number.EPSILON 咱們就認爲 0.1+ 0.2 =  0.3

 

6 ,  Number.isSafeInteger()  

  咱們知道JavaScript表示整數的精度範圍在-2的53次方到2的53次方之間,

  超過這個範圍的整數JavaScript就沒法精確表示了,好比

  Math.pow(2, 53) + 1 ===  Math.pow(2 ,53)    / true

  ES6引入了兩個數來表示這個範圍

  Number.MAX_SAFE_INTEGER = Math.pow(2, 53)  - 1;

  Number.MIN_SAFE_INTEGER = Math.pow(2, 53)  + 1;

  判斷一個整數是否落在這個區域就能夠用 Number.isSafeInteger()  ,

  它只能傳整數進去, 不是整數一概返回false

  

7 , 基於6 咱們知道JavaScript沒法準確的表示大於2的53次方的整數, 

  由此ES6新增了一個bigint的數據類型, 數值後面加n 來區分數字

  typeof 1234n  ===  'bigint'

  當計算Math.pow(2, 53) + 1 的時候 

  9007199254740992 + 1 = 9007199254740992 (不精確)

  9007199254740992n + 1n = 9007199254740993n  (精確)

  在調用toString() 方法返回結果

相關文章
相關標籤/搜索