十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要为大家展示了“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如何判断数组”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!