判斷乙個物件是不是陣列的方法

2021-08-19 18:27:42 字數 1830 閱讀 9373

判斷乙個物件是不是陣列的方法

(1) typeof 無法判斷 只能判斷原始型別的值和函式

(2)isprototypeof 判斷父及物件 可檢查整個原型鏈 //可能繼承自陣列

console.log(array.prototype.isprototypeof()?"是陣列":"不是陣列");

console.log(array.prototype.isprototypeof({})?"是陣列":"不是陣列");

console.log(array.prototype.isprototypeof(function(){})?"是陣列":"不是陣列");

(3)constructor 檢查指定物件的建構函式 可檢查整個原型鏈 //可能繼承自陣列 

var father={};

var son={};

father.__proto__=array.prototype;

son.__proto__=father;

console.log(son.contructor==array?"是陣列":"不是陣列")

console.log({}.contructor==array?"是陣列":"不是陣列");

console.log(function(){}.contructor==array?"是陣列":"不是陣列");

(4)instanceof 檢查乙個物件是否是制定建構函式的例項 可檢查整個原型鏈 //可能繼承自陣列

var father={};

var son={};

father.__proto__=array.prototype;

son.__proto__=father;

console.log(son instanceof array?"是陣列":"不是陣列");

console.log({} instanceof array?"是陣列":"不是陣列");

console.log(function(){} instanceof array?"是陣列":"不是陣列");

(5)強行用要檢查的物件,呼叫原始的tostring方法 不檢查整個原型鏈 //[object class]: class-array date object //只能檢查最初就是陣列建立的物件。

console.log(object.prototype.tostring.call()=="[object array]"?"是陣列":"不是陣列");

console.log(object.prototype.tostring.call({}));

console.log(object.prototype.tostring.call(function(){}));

console.log(object.prototype.tostring.call(/\d/));

var father={}; var son={};

father.__proto__=array.prototype;

son.__proto__=father;

console.log(object.prototype.tostring.call(son)=="[object array]"?"是陣列":"不是陣列");//不是 //結論: 物件一旦建立,class屬性就無法修改 //修改繼承關係,也無法修改class屬性

(6) array.isarray(obj) 不檢查整個原型鏈

console.log(array.isarray());

console.log(array.isarray({}));

//如果瀏覽器不支援isarray

if(array.prototype.isarray===undefined)

}

判斷乙個物件是不是陣列的方法

判斷乙個物件是不是陣列 幾種辦法 typeof無法區分物件和陣列 typeof object typeof object 1.var obj var obj var obj function obj instanceof 建構函式名 型別名 array,function,2.array.protot...

判斷乙個物件是不是陣列型別,最全方法

判斷乙個物件是不是陣列型別,可以分為判斷原型物件,判斷建構函式和判斷內部class屬性三大類,下面 是所有方法。判斷乙個物件是不是陣列型別 var a 10,b hello c true d null e undefined varf function var obj1 obj2 0 1,2 obj...

如何判斷乙個物件是不是數值

要判斷乙個物件是不是陣列的方式有多種,這裡我們乙個乙個來分析 在使用array.isarray方法之前,我們先來普及一下它的作用以及如何使用 作用 它是用於判斷某個物件是否是陣列 使用 語法格式 array.isarray 物件 下面我們就用乙個小例項來看看它怎麼判斷乙個物件是不是陣列 functi...