只要敲过代码,就会知道在各种语言中有一个数据类型叫做————数组(Array),JS中也不例外。
但是现在我想说点题外话,上大学的时候,大部分跟电脑相关的专业可能都学过一门语言叫做C语言,这里面最让小白头疼的应该就是指针了吧。
指针在后来的大部分语言中已经无法被显示调用了,指针是用来存储变量的地址的。它可以获取一个变量在内存中的存放位置,大部分的脚本、外挂都离不开直接操作内存地址。
声明方式
那在C语言中,我们定义一个数组的方式,就是这样:
C语言的另外一种声明方式:
和JS对比一下:
除了C语言声明了变量类型为int
之外,还额外声明了数组的长度为5,而实际上不管你声不声明数组的长度,在初始化的时候数组都会有一个固定长度。
当变量声明完成了并赋值了之后,数据就会存储在内存中,接下来看看他们的存储方式是否相同。
内存存储方式
所以这一种声明方式与上面一种声明方式是完全相同的。
JS中的数组
JS中的数组跟C语言的数组并不相同,你可能也听说过,JS中只有Object,所以Js中的数组并不是以C语言这种存储方式来实现的,所以它的内存地址也不是连续的,它不是我们想象中的数组。
从道理上来说,JS中的数组是通过一种数据结构来实现的,而这种数据结构就是散列表。