判斷乙個物件是否是陣列型別的幾種方法

2021-10-01 05:18:41 字數 2254 閱讀 2328

-----判斷乙個型別是不是陣列一共有8種方法,如下:

var obj1={},obj2=[1,2,3],obj3=new date();

1.通過此物件的爹判斷是不是陣列的原型物件

console.log(//通過此物件的爹判斷是不是陣列的原型物件

obj1.proto==array.prototype,

obj2.proto==array.prototype,//true 為陣列

obj3.proto==array.prototype

)2.判斷obj的原型物件是不是陣列的原型物件

console.log(// ,obj的原型物件是不是陣列的原型物件

object.getprototypeof(obj1)==array.prototype,

object.getprototypeof(obj2)==array.prototype,

object.getprototypeof(obj3)==array.prototype

)//3.乙個更直接函式 father.isprototypeof(child)

console.log(//陣列的原型物件是obj的原型物件嗎?

array.prototype.isprototypeof(obj1),

array.prototype.isprototypeof(obj2),

array.prototype.isprototypeof(obj3),

)//4。通過尋找是不是繼承array直接判斷

//父級元素中的canstructor

console.log(//判斷由子元素找回父親再找回母親是不是array

obj1.constructorarray,// obj1.proto.constructorarray,

obj2.constructorarray,

obj3.constructorarray

)//5.用 」child instanceof 媽媽「

// 實列

console.log( //孩子(obj) 是媽媽(array)的孩子嗎?(//判斷 obj 是不是array new出來的)

obj1 instanceof array,

obj2 instanceof array,

obj3 instanceof array,

)//6.輸出物件的dna:內部隱藏屬性class

console.log(

object.prototype.tostring.call(obj1),//將obj強行打入頂級父元素去呼叫頂級父元素的tostring()函式

object.prototype.tostring.call(obj2),

object.prototype.tostring.call(obj3)

)//7 es5!!!

console.log(

array.isarray(obj1),

array.isarray(obj2),

array.isarray(obj3),

)//8

console.log(

obj1.constructor.tostring(),

obj2.constructor.tostring(),

obj3.constructor.tostring(),

)如下:

// console.log(

// obj2.proto==array.prototype,

// object.getprototypeof(obj2)array.prototype,

// array.prototype.isprototypeof(obj2),

// obj2.constructorarray,

// obj2 instanceof array,

// object.prototype.tostring.call(obj2),

// array.isarray(obj2),

// obj2.constructor.tostring()

// )

結果:true

true

true

true

true

「[objectarray]」

true

「functionarray() 」

判斷乙個物件是否是陣列

用typeof方法返回的陣列型別是object,無法確定是否是陣列,但可以通過下面方法判斷。var is array function value 說明 首先判斷這個值是否有值,並且不是undifined或null的值 其次判斷這個值的typeof運算的結果是否是object 第三判斷這個值的len...

判斷乙個物件是否是陣列?

一 判斷乙個物件是否是陣列?var obj1 obj2 1 2 obj3 newdate 1.判斷當前物件的原型物件是否是陣列的原型物件 1.使用 proto 獲得物件的原型物件 obj1.proto array.prototype false obj2.proto array.prototype ...

判斷乙個物件是否為陣列

方法一 使用instanceof操作符。instanceof操作符用來判斷要檢測物件的原型鏈上是否存在某個建構函式的prototype屬性。var a var b console.log a instanceof object true console.log b instanceof object...