Cirry's Blog

你不知道的JS-Array数组

2024-03-11
草稿
技术
js
最后更新:2024-03-29
3分钟
495字

只要敲过代码,就会知道在各种语言中有一个数据类型叫做————数组(Array),JS中也不例外。

但是现在我想说点题外话,上大学的时候,大部分跟电脑相关的专业可能都学过一门语言叫做C语言,这里面最让小白头疼的应该就是指针了吧。

指针在后来的大部分语言中已经无法被显示调用了,指针是用来存储变量的地址的。它可以获取一个变量在内存中的存放位置,大部分的脚本、外挂都离不开直接操作内存地址。

声明方式

那在C语言中,我们定义一个数组的方式,就是这样:

1
int array[5] = {1, 2, 3, 4, 5};

C语言的另外一种声明方式:

1
int array[] = {1, 2, 3, 4, 5}; // 与上面的结果完全相同

和JS对比一下:

1
let arr = [1, 2, 3, 4, 5]

除了C语言声明了变量类型为int之外,还额外声明了数组的长度为5,而实际上不管你声不声明数组的长度,在初始化的时候数组都会有一个固定长度。

当变量声明完成了并赋值了之后,数据就会存储在内存中,接下来看看他们的存储方式是否相同。

内存存储方式

所以这一种声明方式与上面一种声明方式是完全相同的。

JS中的数组

JS中的数组跟C语言的数组并不相同,你可能也听说过,JS中只有Object,所以Js中的数组并不是以C语言这种存储方式来实现的,所以它的内存地址也不是连续的,它不是我们想象中的数组。

从道理上来说,JS中的数组是通过一种数据结构来实现的,而这种数据结构就是散列表。

本文标题:你不知道的JS-Array数组
文章作者:Cirry
发布时间:2024-03-11
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
感谢大佬送来的咖啡☕
alipayQRCode
wechatQRCode