检查对象是否为数组

如果对象是 Array,则 Array.isArray(obj) 返回 true,否则返回 false

Array.isArray([])           // true
Array.isArray([1, 2, 3])    // true
Array.isArray({})           // false
Array.isArray(1)            // false

在大多数情况下,你可以通过 instanceof 检查对象是否为 Array

[] instanceof Array; // true
{} instanceof Array; // false

Array.isArray 具有优于使用 instanceof 检查的优势,即使阵列的原型已被更改它仍将返回 true,并且如果非阵列原型被更改为 Array 原型将返回 false

var arr = [];
Object.setPrototypeOf(arr, null);
Array.isArray(arr);   // true
arr instanceof Array; // false