你的位置:首页 > Java教程

[Java教程]判断一个对象是不是数组


var arr=[1,2,3]; //Array.prototype

var obj={}; //Object.prototype

var fun=function(){}; //Function.prototype

/*typeof无法区分普通对象和数组*/

    console.log(typeof arr); //object 判断失败

/*isPrototypeOf():判断数组类型的原型是不是arr的父级对象*/

if(Array.prototype.isPrototypeOf(arr)){

console.log("arr是数组");

}

/*instanceof判断arr是否由数组类型创建出来*/

if(arr instanceof Array){

console.log("arr是数组");

}

/*getPrototypeOf:判断arr的父级对象是不是数组类型的原型*/

if(Object.getPrototypeOf(arr)==Array.prototype){

console.log("arr是数组");

}

/*调用Object的原型中的原生toString输出对象的类型名*/

 

console.log(Object.prototype.toString.call(arr));

constructor 属性。 JavaScript中,每个对象都有一个constructor属性,它引用了初始化该对象的构造函数,常用于判断未知对象的类型。如给定一个求知的值 通过typeof运算符来判断它是原始的值还是对象。如果是对象,就可以使用constructor属性来判断其类型。

console.log(typeof arr=="object"&&arr.constructor==Array)