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";
? ? ? ? }
}
}
這里需要提到的是新數(shù)據(jù)類(lèi)型Symbol,它的首要特性就是唯一性,
let a = Symbol.for("abc");
let b = Symbol.for("abc");
a == b;//true ,因?yàn)閍,b指向同一個(gè)Symbol數(shù)據(jù)對(duì)象
Symbol的賦值使用 Symbol.for(val);
取值使用: Symbol.keyfor(key);這里的key指向變量名,可以得到賦值時(shí)得到傳入的實(shí)參;
//判斷對(duì)象是否為空
JSON.stringify(o) == "{}" ,那么就是空對(duì)象