Array.isArray() 判断是否为数组
最后更新:2026-09-09
Array.isArray() 判断是否为数组
Array.isArray 判断一个值是否为数组,是区分数组与普通对象的标准方法。typeof 对数组返回 object 无法区分,instanceof 在跨 iframe 场景会失效。
| 分类 | 数组 |
|---|---|
| ES 版本 | ES5(2009) |
📝 语法
Array.isArray(要判断的值);
⚙️ 参数
| value | 任意要检测的值。 |
|---|
返回值:布尔值:是数组返回 true。
是否修改原值:否(返回新值)
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
true
false
false
1
💡 提示 Array.isArray 是唯一可靠的数组检测——跨 iframe/window 的数组 instanceof Array 会返回 false,isArray 不会。
ℹ️ info 类数组对象(arguments、NodeList)不是真数组——转换用 [...nodeList] 或 Array.from()。
🌐 浏览器支持
| 浏览器 | |||||
|---|---|---|---|---|---|
| Array.isArray() | ✓ v1 | ✓ v12 | ✓ v1.5 | ✓ v3 | ✓ v10.5 |
| 所有现代浏览器均支持 | |||||
🏷️ 相关数组方法
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q为什么不用 instanceof 判断数组?
Ainstanceof 检测原型链——iframe 里创建的数组与主窗口的 Array 构造器不同,会误判 false。Array.isArray 按内部标识判断,永远正确。
QArray.isArray 能识别类数组对象吗?
A不能——{length: 3} 这类对象返回 false。转换真数组用 Array.from(类数组)。
QArray.isArray 是静态方法吗?
A是——挂在 Array 构造器上而非原型上,调用方式是 Array.isArray(x) 而不是 arr.isArray()。