ES6中Number中的擴展
阿新 • • 發佈:2017-06-10
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中的擴展