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就是一個可接受的誤差范圍。