2021-07-05 19:29:10
Array.isArray() 方法详解
答案:Array.isArray() 方法用于确定传递的值是否是一个 Array。
基本用法:
详细解释:
检测普通数组:
Array.isArray([]) 返回 true。空数组也是数组。
Array.isArray([1]) 返回 true。包含一个元素的数组。
检测使用 new Array() 创建的数组:
Array.isArray(new Array()) 返回 true。使用 new Array() 创建的空数组。
Array.isArray(new Array('a', 'b', 'c', 'd')) 返回 true。使用 new Array() 创建并包含多个字符串元素的数组。
Array.isArray(new Array(3)) 返回 true。使用 new Array(3) 创建了一个长度为3的空数组(注意,这里并没有填充任何元素,只是指定了数组的长度)。
检测 Array.prototype:
Array.isArray(Array.prototype) 返回 true。这是一个较少为人知的事实,Array.prototype 本身也是一个数组(尽管它是一个空数组,并且主要用于为所有数组对象提供共享的方法和属性)。
检测非数组值:
Array.isArray() 在没有参数的情况下调用(Array.isArray())返回 false。因为没有传递任何值。
Array.isArray({}) 返回 false。普通对象不是数组。
Array.isArray(null) 返回 false。null 不是数组。
Array.isArray(undefined) 返回 false。undefined 不是数组。
Array.isArray(17) 返回 false。数字不是数组。
Array.isArray('Array') 返回 false。字符串不是数组。
Array.isArray(true) 和 Array.isArray(false) 都返回 false。布尔值不是数组。
Array.isArray(new Uint8Array(32)) 返回 false。Uint8Array 是一个类型化数组,不是普通数组。
Array.isArray({ __proto__: Array.prototype }) 返回 false。尽管这个对象的原型被设置为 Array.prototype,但它本身仍然是一个普通对象,不是数组。
重要特性:
示例图片:



这些图片展示了 Array.isArray() 方法在不同情况下的使用示例,包括检测普通数组、使用 new Array() 创建的数组、以及非数组值。通过这些示例,可以更直观地理解 Array.isArray() 方法的工作原理和用途。