typeof升级版,可以识别出array、object、null、nan、[]、{}

typeof 经常混淆array、object、null等,升级处理一下。
可以将这个函数放在common.js中使用。

function getTypeName(v) {
    var v_str = JSON.stringify(v);
    if (typeof v == 'object') {
        // 判断null
        if (v_str == 'null') {
            return 'null';
        }
        // 判断[]
        if (v_str.charAt(0) == '[') {
            return 'array';
        }

        // 判断{}
        if (v_str.charAt(0) == '{') {
            return 'object';
        }

        // 判断Date对象
        if (v instanceof Date) {
            return 'date';
        }

        // 其他...
        return 'other';
    } else if(typeof v == 'number') {
        // 判断NaN
        if (v_str == 'null') {
            return 'nan';
        }
        return typeof v;
    } else {
       return typeof v;
    }
}

var a = 0;
var b = "";
var c = null;
var d = false;
var e = function () {};
var f = [];
var g = {};
var h;
var i = new Array();
var j = new Object();
var k = new Date();
var l = NaN;
console.log(getTypeName(a)); // number
console.log(getTypeName(b)); // string
console.log(getTypeName(c)); // null
console.log(getTypeName(d)); // boolean
console.log(getTypeName(e)); // function
console.log(getTypeName(f)); // array
console.log(getTypeName(g)); // object
console.log(getTypeName(h)); // undefined
console.log(getTypeName(i)); // array
console.log(getTypeName(j)); // object
console.log(getTypeName(k)); // date
console.log(getTypeName(l)); // nan

posted @ 2016-12-17 10:29  TBHacker  阅读(512)  评论(0编辑  收藏  举报