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) == "{}" ,那么就是空对象