javascript - JS中的Array是不是可以无限大?
ringa_lee
ringa_lee 2017-04-10 15:36:36
[JavaScript讨论组]

是不是只要内存允许,就可以一直往里面加数据

ringa_lee
ringa_lee

ringa_lee

全部回复(6)
怪我咯

《JS高级程序设计》 P88

数组最多可以容纳4294967295(即2^32-1)个项,这几乎已经能够满足任何编程的需求了。如果想添加的项数超过这个上限值,就会发生异常。而创建一个初始大小与这个上限值接近的数组,则可能会导致运行时间超长的脚本错误。

阿神

2^32-1

PHPz

你所不知道的JavaScript数组

数组在内存中数据结构是栈

如果数组中的元素是值类型那么,在数组对应索引中的数据就是这个值类型的数据,如果元素是引用类型那么就会,将这个引用类型的指针压入栈中。

也就是说这个栈中只会存在 值类型数据 or 引入类型指针

数组的最大长度是2^32-1

如果一个值类型数据或引入类型指针在内存中可以是无限的。

那么这个数组数据大小就是无限。

但是,浏览器应该都会给值类型相应的数据上限。

所以我认为最大应该是(2^32-1) * (最大值类型数据 > 最大指针数据 ? 值 : 指针 )而并非无限。

个人观点

迷茫

在内存允许下,是无限大的

伊谢尔伦

最大为 2^32-1,超过就会报错

我们知道可以用 new Array(n),这样的方法声明指定长度的数组,n为正整数

然后在控制台试试下面这段代码

var arr = new Array(Math.pow(2,32)-1); //不会报错
var arr = new Array(Math.pow(2,32));//报错,Invalid array length
伊谢尔伦

《JS高级程序设计》 P88

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号