个人博客
专注IT梦想的地方

JS如何区分对象和数组

很多朋友首先想到的是用typeof来判断,其实typeof一般测试基本类型(Undefined、Null、Boolean、Number、String),对引用类型一律返回object(有一个特殊,Function引用类型返回Function)。

所以typeof用于判断是对象还是数组是没有作用的。

这里简单介绍下两个方法:

方法一

直接使用内置方法isArray来判断,当然,只能判断是否是数组,对象还需要另外再判断

const a = [1, 2, 3, 4];
const b = {"name": "智言"};
console.log(Array.isArray(a)) //true  
console.log(Array.isArray(b)) //false

方法二

使用constructor来判断

const a = [2, 4, 3];
const b = {"name": "智言"};
console.log(a.constructor == Array; //true
console.log(b.constructor == Object); //true

方法三

instanceOf运算符。左边是子对象(待测试对象),右边是父构造函数。

凡是用new()构造函数创建出的对象,都称之为构造函数的实例。

const obj = {"name": "智言"};  
const arr = [1, 2, 3];  
console.log((obj instanceof Array)); //false  
console.log((arr instanceof Array)); //true
赞(156) 打赏
未经允许,不得转载本站任何文章:智言个人博客 » JS如何区分对象和数组

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏