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

你可能感兴趣的:(ES6中的Number数值)