三种方法辨别 数组与 对象

三种方法辨别 数组[] 与 对象{}


        第一种方法  利用constructor

        控制台打印:[].constructor  -----> f Array(){[native code]}
        var obj = {}    控制台打印  obj.constructor ----->f Object(){[native code]}

        第二种方法  利用 instanceof 

        [] instanceof Array  ----->true
        var obj = {}; obj instanceof Object ----> true

        第三种方法  利用toString

        Object.prototype.toString.call([]);   -----> [object Array]
        Object.prototype.toString.call({});   -----> [object object]
        Object.prototype.toString.call(123);  -----> [object Number] 


注意:constructor 和 instanceof 在跨父子域的时候会判断错误,有bug。(比如  子页面里面的数组[]  instanceof   父页面的  Array   ------>会打印false)

猜你喜欢

转载自blog.csdn.net/qq_41713692/article/details/80457158
今日推荐