JS 中如何判断是对象还是数组

3,265 阅读1分钟

在javascript中使用 typeof 来判断是对象还是数组时,返回值都是'object',那么如何来判断是数组还是对象呢? 这里列举 5 种方法:

1. 使用 Object.prototype 的 toString() 方法显示对象的类型。

对象的call()方法执行一个函数,若将this 值更改为传入参数的对象,例如,它允许一个对象使用另一个对象的方法。

直接截取出其类型
Object.prototype.toString.call(obj).slice(8, -1)

2. 使用 Array.isArray()方法 (返回一个布尔值)

3. 使用 instanceof 运算符(返回一个布尔值)

4. 使用 constructor 属性 (返回一个布尔值)

5. 使用isPrototypeOf()函数 --- 检测一个对象是否是Array的原型(返回一个布尔值)