js 判断 -数字- 的方法

判断数字的方法

var a = typeof 5,
    b = typeof Infinity,
    c = typeof NaN,
    d = typeof 0,
    e = 0;
console.log(a, isNaN(5))    //number false
console.log(b, isNaN(Infinity))     //number false
console.log(c, isNaN(NaN))          //number true
console.log(d, isNaN(0))            //number false


// Infinity 这。。也是true,有点麻烦
console.log(Boolean(Infinity)); //true


function checkNum(item) {
    // var result = "start";
    // if (!isNaN(item)) {
    //     result = "not NaN";
    //     if (isFinite(item)) {
    //         if (item || item === 0) {
    //             result = item;
    //         }
    //     }else{
    //         result = "not finite";
    //     }
    // } else {
    //     result = "is NaN";
    // }
    // console.log("result: " + result);

    // 上面例子可见,使用 isNan 和 isFinite 可以排除掉非数字的数据
    // 最好再加上 parseInt/parseFloat
    // 字符串的话也可以用正则 \d
}

checkNum(5)         // 5
checkNum(Infinity)  //not finite
checkNum(NaN)       //is NaN
checkNum(0)         //0

function checkNum(item) {
    var num = parseInt(item, 10);            //第二个参数指定用10进制,ie8默认会用8进制。。。
    if(!isNaN(num) && isFinite(num)) {
        if (item || item === 0) {
            console.log(item);
            return;
        }
    }
    console.log("not a number");
}

checkNum(5)         // 5
checkNum(Infinity)  //not a number
checkNum(NaN)       //not a number
checkNum(0)         //0

posted on 2017-10-11 23:23  xfh0192  阅读(129)  评论(0编辑  收藏  举报

导航