JavaScript属性的长度限制是多少?

30
var obj = {
    'foo' : 'bar',
    'something very, very, very, very long' : 'baz'
};

这个属性名的长度有限制吗?


6
我刚试着用一个超过一百万字符的文件创建内容,在谷歌浏览器上运行得很好。如果我遇到限制,我会及时通知你的。 - David Hedlund
@David 哈哈!那真的很酷。 - Stephen
1
@David,如果你把那个放在答案里,我会给你打勾。 - sprugman
1个回答

32

根据我简短的实证研究,javascript 没有强制限制大小,至少在 Chrome 中是这样实现的。这只是一个问题,在应用程序崩溃之前应用程序允许脚本引擎使用多少内存。

在我的测试中,我成功创建了一个包含268435456个字符长名称属性的对象,但在尝试到536870912后,我的浏览器崩溃了。

我不认为比这更精确地找出我的极限会有任何兴趣,因为这应该证明任何存在的限制都完全是由机器容量而非规格所强加的。

哦,还有当分配属性时长度达到67108864个字符时,我开始注意到性能问题:)


3
规范没有对标识符的长度设置限制,因此我认为这仅仅是实现定义的。 - ChaosPandion

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接