开发者社区> 问答> 正文

关于Javascript的Object和Array的存储数据结构

已解决

1.Array的长度可变,那么内部是如何实现的(问的是底层的数据结构)?比如是类似Java中ArrayList的机制
2.Object的属性数量也可变,内部是如何实现的?
3.会不会不同的浏览器实现原理不同?

第1个问题其实和第2个问题是一个意思,都是问的底层的数据结构。我在网上看到Array其实就是Object。那么是不是Array的元素本质上就是Object中以0,1,2,3,4为key的属性键值对?

展开
收起
51干警网 2016-02-15 11:01:57 2370 0
1 条回答
写回答
取消 提交回答
  • 阿里云论坛版主,QQ 1978638808
    采纳回答

    (1)在内部,array有额外的单元存储数组的长度。java c# python等比C++高级的语言,都会记录数组长度,因此,它们都是可以运行时获取数组长度的。
    (2)内部相当于一个字典,属性名是字典的key,属性值是字典的 value,类似java的hashmap
    (3)肯定实现原理不同,但是表现出来的形式应该类似。早期的浏览器,比如IE8都是解释执行,而现代的chrome用的v8,则使用jit编译和类型化等技术来为js加速。

    2019-07-17 18:28:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载