判断目标的数据类型,以及对象是否为空

function getType(o){

if(o==null||o==undefined){

        return "空";

    }

var typeVal = Object.prototype.toString.call(o);

    switch (typeVal){

        case "[object Object]" : {

            return "object";

        }

        case "[object Array]" : {

            return "array";

        }

        case "[object Number]" : {

            return "number";

        }

        case "[object String]" : {

            return "string";

        }

        case "[object Boolean]" : {

            return "boolean";

        }

        case "[object Symbol]" : {

            return "symbol";

        }

}

}

这里需要提到的是新数据类型Symbol,它的首要特性就是唯一性,

let a = Symbol.for("abc");

let b = Symbol.for("abc");

a == b;//true ,因为a,b指向同一个Symbol数据对象

Symbol的赋值使用 Symbol.for(val);

取值使用: Symbol.keyfor(key);这里的key指向变量名,可以得到赋值时得到传入的实参;


//判断对象是否为空

JSON.stringify(o) == "{}" ,那么就是空对象

你可能感兴趣的:(判断目标的数据类型,以及对象是否为空)