说到判断数据类型,第一反应可能是用typeof,用typeof能判断数组的类型吗?我们来做个实验,看如下代码:

用typeof不能判断数组的类型。那我们先来看下js的数据类型:
1.js数据类型分为基本数据类型,包括undefined、null、number、boolean、string;
2.js的引用数据类型也就是对象类型Object,比如:Object、array、function等;
那我们来看下用typeof究竟能返回那些类型?看下如下示例:

除了number,string,undefined,boolean外,其他的都返回object类型,对于函数类型返回的都是function,看清楚了数据类型的返回结果,接下来我们来看下如何来判断数组的类型。
方法一:ES5定义了Array.isArray:

方法二:使用instanceof方法,instanceof用于判断一个变量是否某个对象的实例

这个方法不能用来区分数组和对象,因为数组也是对象的子类。
方法三:构造函数的方法

方法四:Object.prototype.toString的方法

以上就是判断数组的数据类型方法,如果还要更好的方法欢迎补充留言。
网友评论