1. 程式人生 > >ES6中Number中的擴展

ES6中Number中的擴展

1.2 得到 pre oat 範圍 parseint 5.0 打印 保持

1、Number.parseInt() , Number.parseFloat()

在ES6中將parseInt()和parseFloat()都移植到Number對象上去,方法的行為保持不變。

 // ES5的寫法
 parseInt(‘11.22‘)     // 11
 parseFloat(‘11223.45#‘)   // 11223.45
 // ES6的寫法
 Number.parseInt(‘11.22‘)     // 11
 Number.parseFloat(‘11223.45#‘)   // 11223.45

這樣做可以逐步減少全局性方法,是語言逐步模塊化

Number.parseInt === parseInt // true
Number.parseFloat === parseFloat // true

2、Number.isInteger()

Number.isInteger() 用來判斷一個值是否為整數。但是需要註意的是,在javascript中,整數和浮點數用的是同樣的存儲方法,所以2和2.0被視為同一個值。

Number.isInteger(25) // true
Number.isInteger(25.0) // true
Number.isInteger(25.1) // false
Number.isInteger("15") // false
Number.isInteger(true) // false

3、Number.EPSILON

ES6的Number對象新增了一個常量Number.EPSILON。這個值很小,我們可以在控制臺下打印出來看

Number.EPSILON.toFixed(20);
// 0.00000000000000022204

引入這麽小的一個常量的目的在於,為浮點數計算設置一個誤差範圍。因為浮點數的計算是不精確的。如果誤差小於Number.EPSILON,我們就可以認為得到了正確的結果.

// 舉個例子吧:
0.1+0.2;      //0.30000000000000004
0.1+0.2-0.3;     //5.551115123125783e-17
(0.1+0.2-0.3).toFixed(20);    //"0.00000000000000005551"
// 那麽我們再來看看0.1+0.2-0.3的值是否小於Number.EPSILON,如果小於,返回true,那我們便可以認為結果正確
0.1+0.2-0.3 === 0  // false
(0.1+0.2-0.3).toFixed(20)
<Number.EPSILON; // true

4.Number.isNaN()用來檢查一個值是否為NaN.

Number.isNaN(NaN) // true
Number.isNaN(15) // false
Number.isNaN(‘15‘) // false
Number.isNaN(true) // false
Number.isNaN(9/NaN) // true
Number.isNaN(‘true‘/0) // true
Number.isNaN(‘true‘/‘true‘) // true 

5.安全整數和 Number.isSafeInteger()

javascript 能夠準確表示的整數範圍在-2^53到2^53之間(不含兩個端點),超過這個範圍,無法精確表示這個值。
ES6 引入了Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER這兩個常量,用來表示這個範圍的上下限。
Number.isSafeInteger()則是用來判斷一個整數是否落在這個範圍之內。

Number.isSafeInteger(‘a‘) // false
Number.isSafeInteger(null) // false
Number.isSafeInteger(NaN) // false
Number.isSafeInteger(Infinity) // false
Number.isSafeInteger(-Infinity) // false
Number.isSafeInteger(3) // true
Number.isSafeInteger(1.2) // false
Number.isSafeInteger(9007199254740990) // true
Number.isSafeInteger(9007199254740992) // false
Number.isSafeInteger(Number.MIN_SAFE_INTEGER - 1) // false
Number.isSafeInteger(Number.MIN_SAFE_INTEGER) // true
Number.isSafeInteger(Number.MAX_SAFE_INTEGER) // true
Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1) // false

ES6中Number中的擴展