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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,199评论 0 13
  • 晚上,我们坐9号地铁,在马当路站转13号线到终点站世博大道。本想去世博公园,但两个门都关闭了,看了门上的提示,有开...
    若水之善阅读 220评论 0 0
  • 生活里,10%的是结果,90%的是感受,遇到那些让人动心和开心的时刻,就好好记录下来吧。 一直不...
    周纯阅读 338评论 0 0
  • 父亲最近在戒烟。 吃完晚饭,围着炉火取暖的时候。父亲翻了抽屉,突然把桌布撩起,说要看了看炉火有没有熄,我也出奇的看...
    默夜清辉阅读 508评论 6 4
  • 小生姓张名威字子苏。 刚玩古剑奇谭1的时候是我初次听到苏苏这个非常好听的名字,本身家里除了我这一代都是三字名,于是...
    张子苏阅读 634评论 1 1