【发布时间】:2011-06-09 08:57:42
【问题描述】:
查看 javascript 类型,我试图找出某些数据类型的最大存储大小。例如,我设置了一个快速递归算法来增加 var 大小,直到浏览器崩溃,对于我现有版本的 chrome 上的字符串,它最终接近 128mb(或者可能是 256)。
我一直在以痛苦的方式做这件事,因为我找不到任何关于此的规范,但不断的浏览器崩溃使这成为一个痛苦的试验(由于某种原因,try catch 似乎对这个特定问题毫无用处)。
我也在寻找有关其他类型(数组、对象、函数、字符串、数字、布尔值...)的最大存储大小的信息
EMCA-262 第 8.4 节对此含糊不清
字符串的长度是其中元素的数量(即 16 位值)。空字符串的长度为零,因此不包含任何元素。
...所以也许这需要被识别为在浏览器中实现?
但是,ECMA 确实告诉我们有关数字的信息,例如,
Number 类型正好有 18437736874454810627(即 2^64−2^53+3)个值,代表二进制浮点算术的 IEEE 标准中指定的双精度 64 位格式 IEEE 754 值,除了 IEEE 标准的 9007199254740990(即 2^53−2)个不同的“非数字”值在 ECMAScript 中表示为单个特殊的 NaN 值。
但是我没有看到任何关于对象的东西。
我可以在浏览器中使用什么?是否有任何代码库可以帮助管理非常大的对象和字符串?
我可以在单个脚本中分配多少内存?
【问题讨论】:
标签: javascript cross-browser ecma262