Check if a value is array type

To check whether an object is array type, use Array.isArray(), instead of instanceof Array. Reason: instanceof Array does not work across realms ( window, iframe). Check here, and here.

Note that a TypedArray (e.g., new Int8Array(8), ...) gives a false result when passed in Array.isArray().

Array.isArray check if a value is array type by looking at the value's constructor name. It is implemented in corejs as:

Array.isArray = value => Object.prototype.toString.call(value) === '[object Array]'

corejs source: here and here.
Nonetheless, please keep in mind that this implementation is best-effort to mimic the behavior, and does not perfectly satisfies the requirements specified by the ECMA specs.

const a = {}
a[Symbol.toStringTag] = 'Array'
console.log(Array.isArray(a)) // print false
delete Array.isArray
require("core-js/modules/es.array.is-array")
console.log(Array.isArray(a)) // print true