js如何判断一个对象是不是Array

2024-11-15 07:56:35
推荐回答(4个)
回答1:

本来判断一个对象类型用typeof是最好的,不过对于Array类型是不适用的
可以使用 instanceof操作符
var arrayStr=new Array("1","2","3","4","5");
alert(arrayStr instanceof Array);
当然以上在一个简单的页面布局里面是没有问题的,如果是复杂页面情况,入获取的是frame内部的Array对象,可以用这个函数判断:
function isArray(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
}

回答2:

javascript中的 instanceof 用于判断一个变量是否某个对象的实例,如 var a=new Array();alert(a instanceof Array); 会返回 true。

var s = "1";
alert(typeof(s) + "--" + (s instanceof Array));

var a = [];
alert(typeof(a) + "--" + (a instanceof Array));

var b = new Array();
alert(typeof(a) + "--" + (b instanceof Array));
 
var c = 123;
alert(typeof(c) + "--" + (c instanceof Array));

 

希望对你有所帮助。

回答3:

typeof 操作符
对于Function, String, Number ,Undefined 等几种类型的对象来说,他完全可以胜任,但是为Array时
var arr=new Array("1","2","3","4","5");
alert(typeof(arr));
你会收到一个object 的答案,有点让人失望。
instanceof 操作符
JavaScript中instanceof运算符会返回一个 Boolean 值,指出对象是否是特定类的一个实例。 使用方法:result = object instanceof class,还是刚刚的数组,再来一次,嗯,成功的返回 true。
var arrayStr=new Array("1","2","3","4","5");
alert(arrayStr instanceof Array);

回答4:

var arr = [1,3];

Array.isArray(arr);// true

或者
Object.prototype.toString.call(arr);// "[object Array]"