ES6中的Number数值

Number.isFinite()、Number.isNaN()

Number.isFinite()检查一个数值是否为有限的,即不是Infinity

    console.log(Number.isFinite(10)); // true
    console.log(Number.isFinite(0.1)); // true
    console.log(Number.isFinite(NaN)); // false
    console.log(Number.isFinite(Infinity)); // false
    console.log(Number.isFinite('Hello')); // false
    console.log(Number.isFinite(true)); // false

如果参数不是数值,Number.isFinite()一律返回false

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

    console.log(Number.isNaN(NaN)); // true
    console.log(Number.isNaN(11)); // false
    console.log(Number.isNaN(true)); // false
    console.log(Number.isNaN('11')); // false
    console.log(Number.isNaN(1 / NaN)); // true
    console.log(Number.isNaN('true' / 1)); // true

与传统的全局方法isFinite()和isNaN()的区别

    console.log(isFinite(100)); // true
    console.log(isFinite('100')); // true
    console.log(Number.isFinite(100)); // true
    console.log(Number.isFinite('100')); // false

    console.log(isNaN(NaN)); // true
    console.log(isNaN('NaN')); // true
    console.log(Number.isNaN(NaN)); // true
    console.log(Number.isNaN('NaN')); // false

传统方法,先调用Number()将非数值转为数值,再进行判断,而ES6中的新方法只对数值有效。Number.isFinite()对于非数值一律返回false,Number.isNaN()只有对于NaN才返回true,非NaN一律返回false

Number.parseInt(),Number.parseFloat()

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

    console.log(parseInt('10.33')); // 10
    console.log(Number.parseInt('10.33')); // 10

    console.log(parseFloat('10.53.1#')); // 10.53
    console.log(Number.parseFloat('10.53.1#')); // 10.53

Number.isInteger()

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

    console.log(Number.isInteger(10)); // true
    console.log(Number.isInteger(10.1)); // false
    console.log(Number.isInteger(10.0)); // true

参数只要不是数值,一律返回false

    console.log(Number.isInteger(true)); // false
    console.log(Number.isInteger(null)); // false
    console.log(Number.isInteger('11')); // false
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在ES5中,我们存在几个全局函数 isNaN函数,isFinite函数,parseInt函数,parseFloat...
    CRUD_科科阅读 2,732评论 0 1
  • 二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。 ...
    oWSQo阅读 1,644评论 0 0
  • 一、数值的扩展 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。十六进制...
    夜幕小草阅读 2,532评论 0 1
  • 1. 二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)...
    焦迈奇阅读 2,778评论 0 0
  • 宫本修
    目修阅读 897评论 0 0