【无标题】

总结

  1. Array.isArray(obj) ✅ 推荐
  2. obj instanceof Array
  3. Object.prototype.toString.call(obj) === '[object Array]'
  4. Array.prototype.isPrototypeOf(obj)

方法对比

方法 是否推荐 说明
Array.isArray(obj) ✅ 强烈推荐 最直接、最准确的方式
obj instanceof Array ✅ 推荐 适用于单一全局环境,跨框架可能出错
Object.prototype.toString.call(obj) ✅ 推荐 可靠的通用方法,适用于所有对象类型判断
Array.prototype.isPrototypeOf(obj) ❌ 不推荐 判断的是原型链,不能准确判断是否为数组实例

示例代码

1. Array.isArray()

js 复制代码
const arr = [1, 2, 3];
console.log(Array.isArray(arr)); // true

const obj = {};
console.log(Array.isArray(obj)); // false

2. instanceof Array

js 复制代码
const arr = [1, 2, 3];
console.log(arr instanceof Array); // true

const obj = {};
console.log(obj instanceof Array); // false

⚠️ 注意:instanceof 在跨框架(如 iframe)时可能返回 false。

3. Object.prototype.toString.call()

js 复制代码
const arr = [1, 2, 3];
console.log(Object.prototype.toString.call(arr)); // [object Array]

const obj = {};
console.log(Object.prototype.toString.call(obj)); // [object Object]

这是最通用、最安全的类型判断方式,适用于任何 JavaScript 环境。

4. Array.prototype.isPrototypeOf()

js 复制代码
const arr = [1, 2, 3];
console.log(Array.prototype.isPrototypeOf(arr)); // true

const obj = {};
console.log(Array.prototype.isPrototypeOf(obj)); // false

⚠️ 此方法判断的是原型链关系,并非是否为数组实例,不推荐用于判断数组。

推荐用法

  • ✅ 优先使用 Array.isArray():简洁、准确、标准。
  • ✅ 次选 Object.prototype.toString.call():适用于需要兼容旧环境或判断多种类型时。

注意事项

  • 避免使用 typeof 判断数组:typeof [] 返回 "object"。
  • 避免使用 instanceof 在跨全局对象(如多个 window)的场景中使用。

相关推荐
suaizai_2 分钟前
ComputerUse:让AI真正操控桌面系统
java·前端·javascript
傲世仙尊9 分钟前
C++起步-命名空间解决命名冲突与cin-cout缺省参数
开发语言·c++
hljqwb13 分钟前
java服务异常日志只打印异常类型,没有堆栈定位分析(十)
java·开发语言
ym hyd 11117 分钟前
生鲜超市库存管理信息系统源码 Java+SpringBoot+Vue3 前后分离
java·开发语言·vue.js·spring boot·毕设
haerapi19 分钟前
KingbaseES 全文检索实战之前:先建立中文搜索的可解释基线
开发语言·python·全文检索
徐小黑ACG19 分钟前
Golang 基础02 控制语句
开发语言·后端·golang
liyunlong-java24 分钟前
敏感词过滤完整指南(DFA 字典树)
java·开发语言·spring
(Charon)26 分钟前
【C++面试】四种cast转换:static_cast、dynamic_cast、const_cast与reinterpret_cast
开发语言·c++·面试
脉动数据行情130 分钟前
Python asyncio 异步实现比特币 BTC 实时行情监听 高并发版
开发语言·python·区块链
爱吃奥利奥_wen30 分钟前
排序算法通关手册:从 O(n²) 到 O(n log n),用一篇文章打通算法内功心法
开发语言·经验分享