You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中为数组索引100赋值时会分配多少内存?

JavaScript数组稀疏赋值的内存分配问题

当执行代码 const arr = []; arr[100] = 1; 时,内存分配情况如下:

  • 不会为索引0到99分配内存,仅为索引100对应的键值对占用内存。JavaScript中的数组本质是特殊的对象,索引本质是字符串形式的属性名,未显式赋值的索引不会被存储,自然不占用内存。
  • 数组的length属性会被自动设置为101,但这只是一个记录数组最大索引+1的属性值,不代表实际分配了101个元素的内存空间。
  • 不同JS引擎(如V8)会根据数组的稀疏程度做优化:如果是稀疏数组(仅部分索引有值),会采用哈希表结构存储实际存在的键值对;只有当数组是密集型(连续索引都有赋值)时,才会使用连续内存的"快数组"形式。

关于数组的本质定义,可参考ECMAScript官方规范中Array类型的相关说明,规范明确数组属于对象类型,索引是符合特定规则的属性,未赋值的索引不强制占用内存,具体实现由引擎决定。

内容的提问来源于stack exchange,提问作者Rustem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 12:46:02