本来判断一个对象类型用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]';
}
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));
希望对你有所帮助。
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);
var arr = [1,3];
Array.isArray(arr);// true
或者
Object.prototype.toString.call(arr);// "[object Array]"