您的位置:首页 > Web前端 > JavaScript

js函数区分数组和对象

2015-12-15 00:00 741 查看
摘要: 当数组作为操作数并使用typeof操作符时,其结果会返回"object",因为数组也是对象。但是这对于排除错误没有什么帮助

当数组作为操作数并使用typeof操作符时,其结果会返回"object",因为数组也是对象。但是这对于排除错误没有什么帮助,通常我们需要知道某个值是否为一个数组。有时候检查代码可以用是否存在length属性或一些数组方法,但是这些检查并非万能,我们无法确定一个非数组对象就不能拥有这些属性和方法。还可以使用instanceof Array进行检查,但是这种检查存在兼容性问题。
ECMAScript 定义了Array.isArray(),方法,接受参数为数组时返回true。但是有些环境不支持这种方法,最好的检查数组性质的方法是Object.prototype.toString.call方法,若是数组会返回[object Array],若是对象则为[object object]。因此要用如下方法检测:
if(typeof Array.isArray === "undefined"){
Array.isArray = function(arg){
return Object.prototype.toString.call(arg) === "[object Array]";
};
}
//调用Array.isArray()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js数组类型