五種方法判斷乙個物件是不是陣列型別

2021-10-01 15:14:51 字數 1877 閱讀 6439

typeof 只能判斷原始型別的值和函式 五種基本資料型別 null number string boolean undefined 和一種引用資料型別 object

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

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

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

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

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?"是陣列":"不是陣列");

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?"是陣列":"不是陣列");

強行用要檢查的物件,呼叫原始的tostring方法 不檢查整個原型鏈

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屬性

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

console.log(array.isarray());

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

//如果瀏覽器不支援isarray

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

}

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

判斷乙個物件是不是陣列的方法 1 typeof 無法判斷 只能判斷原始型別的值和函式 2 isprototypeof 判斷父及物件 可檢查整個原型鏈 可能繼承自陣列 console.log array.prototype.isprototypeof 是陣列 不是陣列 console.log arra...

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

判斷乙個物件是不是陣列 幾種辦法 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...