# 判断数组的方法
# superwyk
# 方法一
// 最常用方法
function isArray(arr){
return Object.prototype.toString.call(arr) === '[object Array]';
}
# 方法二
// es6方法
function isArray(arr){
return Array.isArray(arr);
}
# 方法三
function isArray(arr){
return arr.constructor === Array;
}
# 方法四
function isArray(arr){
return arr instanceof Array;
}
# johninch
# 方法一
// es5 方法
function isArray(arr){
return Object.prototype.toString.call(arr) === '[object Array]';
}
# 方法二
// es6 方法
function isArray(arr){
return Array.isArray(arr);
}
# 方法三
有误差,不推荐:
function isArray(arr){
return arr.constructor === Array;
}
# 方法四
有误差,不推荐:
function isArray(arr){
return arr instanceof Array;
}
# 方法五
比较麻烦,不推荐:通过判断数组的属性来间接判断 有length属性且不可枚举(因为也可以为对象添加属性),有splice
function isArray(arr){
return arr && typeof arr === "object" &&
typeof arr.splice === "function" &&
typeof arr.length === "number" && !arr.propertyIsEnumerable("length")
}
# Mtd
function isArray(arr) {
if (Array.isArray) {
return Array.isArray(arr);
} else {
return Object.prototype.toString.call(arr) === '[object Array]'
}
}
# Wlxm
1. Array.isArray
2. Object.toString.call(*) === '[object Array]'
3. Object(*).constructor === Array
4. * instanceof Array
5. Object(*).constructor.name === 'Array'