美文网首页Web 前端开发
ES6第三课、number扩展

ES6第三课、number扩展

作者: 前端一菜鸟 | 来源:发表于2019-03-26 09:35 被阅读0次

    4.1 Number.isFinite(), Number.isNaN()

    Number.isFinite()用来检查一个数值是否为有限的(finite),即不是Infinity
    注意,如果参数类型不是数值,Number.isFinite一律返回false。

    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
    isNaN(NaN) // true
    isNaN("NaN") // true
    Number.isNaN(NaN) // true
    Number.isNaN("NaN") // false
    

    如果参数类型不是NaN,Number.isNaN一律返回false。
    它们与传统的全局方法isFinite()和isNaN()的区别在于,传统方法先调用Number()将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效,Number.isFinite()对于非数值一律返回false, Number.isNaN()只有对于NaN才返回true,非NaN一律返回false。

    4.2 Number.parseInt(), Number.parseFloat()

    ES6 将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。这样做的目的,是逐步减少全局性方法,使得语言逐步模块化。

    4.3 Number.isInteger()

    Number.isInteger()用来判断一个数值是否为整数。

    4.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
    

    对于非数值,Math.trunc内部使用Number方法将其先转为数值。

    Math.trunc('123.456') // 123
    Math.trunc(true) //1
    Math.trunc(false) // 0
    Math.trunc(null) // 0
    

    对于空值和无法截取整数的值,返回NaN。

    Math.trunc(NaN);      // NaN
    Math.trunc('foo');    // NaN
    Math.trunc();         // NaN
    Math.trunc(undefined) // NaN
    

    4.5 Math.sign()

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

    • 参数为正数,返回+1;
    • 参数为负数,返回-1;
    • 参数为 0,返回0;
    • 参数为-0,返回-0;
    • 其他值,返回NaN。

    相关文章

      网友评论

        本文标题:ES6第三课、number扩展

        本文链接:https://www.haomeiwen.com/subject/bhvwvqtx.html