最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JS判断数组详细介绍

来源:动视网 责编:小OO 时间:2020-11-27 20:04:46
文档

JS判断数组详细介绍

typeof运算符;typeof会返回这个类型的字符串。var a = ';123';console.log(typeof(a)) //string var b = [] console.log(typeof(b)) //object var c = {} console.log(typeof(c)) //object var d = null console.log(typeof(d)) //object。上述看到 数组 对象 null 用typeof返回都是object 这种方法不能识别出是否为数组。原型contructor链方法。实例化有一个contructor属性 这个属性指向生成对象 数组的方法。
推荐度:
导读typeof运算符;typeof会返回这个类型的字符串。var a = ';123';console.log(typeof(a)) //string var b = [] console.log(typeof(b)) //object var c = {} console.log(typeof(c)) //object var d = null console.log(typeof(d)) //object。上述看到 数组 对象 null 用typeof返回都是object 这种方法不能识别出是否为数组。原型contructor链方法。实例化有一个contructor属性 这个属性指向生成对象 数组的方法。


如何判断数组?有的小伙伴们应该知道,但是有的却说不上来js如何判断数组。下面小编就针对这个问题给大家收集整理了份资料,感兴趣的朋友一起看看吧,希望大家能掌握JS判断数组的知识。

typeof运算符

typeof会返回这个类型的字符串

 var a = '123'
 console.log(typeof(a)) //string
 var b = []
 console.log(typeof(b)) //object
 var c = {}
 console.log(typeof(c)) //object
 var d = null
 console.log(typeof(d)) //object

上述看到 数组 对象 null 用typeof返回都是object 这种方法不能识别出是否为数组

原型contructor链方法

实例化有一个contructor属性 这个属性指向生成对象 数组的方法

 var a = []
 console.log(a.__proto__.constructor) //? Array() { [native code] }
 var b = {}
 console.log(b.__proto__.constructor) //? Object() { [native code] }

上述看到 数组是由Array函数实例化的 对象由Object函数实例化来得

感觉这种方法是可以了 但是 constructor这个属性是可以被改写的

 var a = []
 a.__proto__.constructor = Object
 console.log(a.__proto__.constructor) //? Object() { [native code] }

可以看到 这个是 变成了数组判断成了对象 所以这个方法也不是最好的

instanceof

这个方法是判断某个构造函数的prototype属性所指向的对象是否在另外一个要检测对象的原型链上

 var a = []
 console.log(a instanceof Array) //a对象的原型链上能找到Array true
 console.log(a instanceof Object) //true 原型链上也能找到对象

上述这种也不是特别好 判断不出是数组还是对象

通用的方法 toString

toString() 方法返回放映这个对象的字符串

 var a= '123'
 console.log(a.toString()) //123
 var b = [1,2,3]
 console.log(b.toSting()) //1,2,3
 var c = {}
 console.log(c.toString)) //[object Object]

可以看到只有对象返回对象类型

返回[object type] type代表对象的类型

判断对象用Object的toString的方法拿过来用

 var a =[]
 Object.prototype.toString.call(a) //[object Array]

这个对象 toString方法是可以判断出是否为数组

但是这里注意下有个情况就是对象原型上toString() 也是可以更改的

Array.isArray(XX)

个人感觉还是使用通用方法 toString() 方法靠谱

文档

JS判断数组详细介绍

typeof运算符;typeof会返回这个类型的字符串。var a = ';123';console.log(typeof(a)) //string var b = [] console.log(typeof(b)) //object var c = {} console.log(typeof(c)) //object var d = null console.log(typeof(d)) //object。上述看到 数组 对象 null 用typeof返回都是object 这种方法不能识别出是否为数组。原型contructor链方法。实例化有一个contructor属性 这个属性指向生成对象 数组的方法。
推荐度:
标签: 判断 介绍 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top