首先聲明一個數組 var arr= [];
js中typeof只能檢測簡單數據類型 如果typeof arr,會返回object,顯然不能判斷到底是不是一個數組 那么js中用什么方法檢測數組呢? 方法1: isArray()方法 Array.isArray(arr);
但是這個方法有兼容性 ie瀏覽器只有ie9以上才支持 方法2:instanceof 運算符 arr instanceof Array
instanceof 運算符的作用 A instanceof B 判斷B的PRototype屬性值是否在A的原型鏈上 也可以是判斷A是不是B的實例 返回布爾值
方法3:方法借用 Object.prototype.toString.call(arr)===[object,Array]
如果返回true證明是數組
call方法為方法借用 A.call(B) 意思就是將A中的this指向B,B如果是數組的話,就會去自身去找toString()方法,自身找不到就去它的原型上去找,如果找到返回[object,Array]
方法4:arr.constructor
看返回的是不是名字為Array的構造函數
js中, 每個對象都有一個constructor屬性,它引用了初始化該對象的構造函數,常用于判斷未知對象的類型。
新聞熱點
疑難解答