最近在看阮一峰老師的《ES6標准入門》的時候,看到ES6新增了兩個方法。
用來判斷一個數值。
一、判斷整數------Number.isInteger()
Number.isInteger() 首先判斷該值是否為number類型,不是直接返回false;
是number類型的話在判斷是否為整數。
Number.isInteger(25); //true Number.isInteger(25.222); //false Number.isInteger('25'); // false Number.isInteger('25.222'); //false Number.isInteger('foo'); // false
用Es5來判斷是否為正數也很簡單,實現方法有很多種,這里列出兩種:
1、利用 Math.round,利用四舍五入來判斷該值是否為整數。
function numberIsInteger(n){ if(!Number.isInteger){ return typeof n === 'number' && Math.round(n) === n; } return n; }
2、利用取余。
function numberIsInteger(n){ if(!Number.isInteger){ return typeof n === 'number' && n % 1 === 0; } return Number.isInteger(n); }
二、判斷一個數是否為正數、負數、或者零----Math.sign()
返回5種值:
+1 正數
-1 負數
0 0
-0 -0
NaN 其他值
console.log(Math.sign(-5)); //-1 console.log(Math.sign(-5.222)); // -1 console.log(Math.sign(555)); // 1 console.log(Math.sign(0)); // 0 console.log(Math.sign(-0)); // -0 console.log(Math.sign('foo')); // NaN
Es5實現方法:
Math.sign = Math.sign || function (n){ n = +n; if(n === 0 || isNaN(n)){ return n; } return x > 0 ? 1 : -1; }