怎么在JavaScript中检测数组的类型

  介绍

这篇文章将为大家详细讲解有关怎么在JavaScript中检测数组的类型,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强> 1。运算符

当只有一个全局执行环境时适用,如果包含多个框架,就存在两个以上不同版本的数组构造函数,如果从一个框架向另一个框架传递数组,传入的数组与在第二个框架中原生创建的数组分别具有不同的构造函数,即为不同类型

if  (value  instanceof 数组),{//对才能数组执行某项操作,,,   }

<强> 2。Array.isArray()方法

因为是ES5新增的,只支持IE9 +, Firefox 4 +, Safari 5 +, Opera 10.5 +和Chrome

if  (Array.isArray(值)),{//对才能数组执行某些操作,   }

<强> 3. object.prototype.tostring.call()方法

适用于所有环境,只支持原生的对象,对象的toString()方法不能检测非原生构造函数的构造函数名。开发人员自定义的任何构造函数都将返回(对象对象)

原理:在任何值上直接调用对象的原生toString()方法,都会返回[对象NativeConstrctorName]格式的字符串,每个类内部都有一个类属性,这个属性中就指定了上述字符串中构造函数名。

var  value =, []   console.log (Object.prototype.toString.call(值))//癧Object 数组),

由于原生数组的构造函数名和作用域无关,因此使用toString()方法就能保证输出一样的值。

为什么不使用对象自己的toString()方法?

var  value =, []   console.log (value.toString ())//,,,   value =, (& # 39; pp # 39; & # 39; oo # 39;】   console.log (value.toString ())//皃p、oo"   时间=value  [& # 39; pp # 39;,“oo"】   console.log (Object.prototype.toString.call(值))//[object 数组)

阵列的tostring()方法被重写了(很多原生对象均如此),所以它会调用自己构造函数上的tostring()方法,返回其他的字符串

还可以用此方法来判断是不是原生函数或者正则表达式

function  isFunction(值){   ,,,return  Object.prototype.toString.call(值),===,“(object 函数)”   }//不适用于IE中以COM对象实现的任何函数   function  isRegExp(值){   ,,,return  Object.prototype.toString.call(值),===,“(object  RegExp)”   }

关于怎么在JavaScript中检测数组的类型就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

怎么在JavaScript中检测数组的类型