【JS】数组和对象的区别与联系

JavaScript012

【JS】数组和对象的区别与联系,第1张

一直以来穿梭于前端后端之间,突然间发现自己对JS的数组和对象操作有些混淆了,因为他们的操作方式太像了。例如数组 var arr = [1,2,3,4,5] 和对象 var obj = {'0':1, '1':2, '2':3, '3':4, '4':5} :

而且,在PHP中 $arr = [1,2,3,4,5] 与 $obj = ['0'=>1, '1'=>2, '2'=>3, '3'=>4, '4'=>5] 完全等价,这更加剧了我的头晕!今儿个势必搞清楚~

带着这个疑问,我在 ECMA-262标准 9.4.2节 中找到了答案:

通过上面这段话以及已经掌握的知识,我们可以总结出JavaScript中数组与对象的区别与联系主要有:

注:文中如有任何错误,请各位批评指正!

var

a

=

[]

var

a

=

{}

这两种不能算真正的数组和对象,只是和数组和对象类型,其实这两种是json格式的

var

a

=

new

Array

()

var

a

=

new

Object()

这两种是真正的js的对象和数组

之所以前他们使用方法类似,是因为json和js中对象数组的使用方法类似,[]和数组都是根据索引调用的,{}和js的对象都是根据key值调用的,所以可以通用

这个就类似于你用getElementsByTagName("div")获取元素一样,它可以通过下表得到元素,但他其实也不是数组,是一个可以通过使用下表获取的集合