1.Array的长度可变,那么内部是如何实现的(问的是底层的数据结构)?比如是类似Java中ArrayList的机制
2.Object的属性数量也可变,内部是如何实现的?
3.会不会不同的浏览器实现原理不同?
第1个问题其实和第2个问题是一个意思,都是问的底层的数据结构。我在网上看到Array其实就是Object。那么是不是Array的元素本质上就是Object中以0,1,2,3,4为key的属性键值对?
(1)在内部,array有额外的单元存储数组的长度。java c# python等比C++高级的语言,都会记录数组长度,因此,它们都是可以运行时获取数组长度的。
(2)内部相当于一个字典,属性名是字典的key,属性值是字典的 value,类似java的hashmap
(3)肯定实现原理不同,但是表现出来的形式应该类似。早期的浏览器,比如IE8都是解释执行,而现代的chrome用的v8,则使用jit编译和类型化等技术来为js加速。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。