Array.isArray() or the
instanceof operator. While both methods work for arrays created either using the array literal syntax or the
Array constructor, there's a key difference.
Array.isArray() is more reliable, as it works with cross-realm-objects, such as those created in an
var iframeEl = document.createElement('iframe'); document.body.appendChild(iframeEl); iframeArray = window.frames[window.frames.length - 1].Array; var array1 = new Array(1,1,1,1); var array2 = new iframeArray(1,1,1,1); console.log(array1 instanceof Array); // true console.log(Array.isArray(array1)); // true console.log(array2 instanceof Array); // false console.log(Array.isArray(array2)); // true
As illustrated in the previous example,
instanceof breaks when working with an
Array.isArray() produces the correct result regardless of the way the array was instantiated.
If you are interested in knowing why
instanceof Array doesn't work across different globals (i.e.
window), you can read more about it here.
A collection of quick tips and tricks to level up your coding skills one step at a time.
Checks if the a value is an empty object/collection, has no enumerable properties or is any type that is not considered a collection.
Checks if an object looks like a
Checks if the provided argument is array-like (i.e. is iterable).