ES6中Number的一些擴展方法(一)


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;
// 2.220446049250313e-16

那么我們用更直觀的十進制,保留20位小數來看

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).toFixed(20)<Number.EPSILON;   // true

其實,Number.EPSILON就是一個可接受的誤差范圍。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM