检查对象是否为数组
如果对象是 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