# 判断数组的方法

# 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'
Last Updated: 3/6/2020, 5:50:28 PM