打赏

ES6 数值扩展

1、Number.isNan 和 Number.isFinite

Number.isNaN()用来检查一个值是否为NaN

Number.isNaN(NaN) // true
Number.isNaN(15) // false
Number.isNaN('15') // false
Number.isNaN(true) // false

Number.isFinite()用来检查一个数值是否为有限的(finite)

Number.isFinite(15); // true
Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
Number.isFinite(Infinity); // false
Number.isFinite(-Infinity); // false
Number.isFinite('foo'); // false
Number.isFinite('15'); // false
Number.isFinite(true); // false

ES5的2个方法,isFinite和isNaN,原理是先调用Number()将非数值的值转为数值,再进行判断。

ES6的2个方法为只对数值有效Number.isFinite()对于非数值一律返回falseNumber.isNaN()只有对于NaN才返回true,非NaN一律返回false

总之:ES6更加严谨了。

 

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

ES6 将全局方法parseInt()parseFloat(),移植到Number对象上面,行为完全保持不变

 

3、Number.isInteger

Number.isInteger()用来判断一个值是否为整数。需要注意的是,在 JavaScript 内部,整数和浮点数是同样的储存方法,所以 3 和 3.0 被视为同一个值。

 

4、Math.trunc

Math.trunc方法用于去除一个数的小数部分,返回整数部分

Math.trunc(4.1) // 4
Math.trunc(4.9) // 4
Math.trunc(-4.1) // -4
Math.trunc(-4.9) // -4
Math.trunc(-0.1234) // -0

对于参数为非数字,trunc方法会使用内部Number方法先将其转为数字再截取整数部分。

Math.trunc('3.2') //3

 5、正数、负数、零判断

Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。

它会返回五种值。

  • 参数为正数,返回+1
  • 参数为负数,返回-1
  • 参数为 0,返回0
  • 参数为-0,返回-0;
  • 其他值,返回NaN
Math.sign(-5) // -1
Math.sign(5) // +1
Math.sign(0) // +0
Math.sign(-0) // -0
Math.sign(NaN) // NaN

 

posted @ 2017-12-08 16:54  孟繁贵  阅读(268)  评论(0编辑  收藏  举报
TOP