【发布时间】:2019-05-27 03:05:56
【问题描述】:
我认为这将是一个简单的谷歌搜索,但没有出现。
假设我创建了一个循环,不断地一次将一个字符附加到一个变量中。
程序会在什么时候崩溃?
我预计有人会在不到 6 秒的时间里评论“你为什么不尝试一下并找出答案?”,但尝试它不会告诉我问题的答案。它是特定于实现的吗?它是否在任何地方定义?它似乎不在 ECMAScript 规范中。
除了可用内存之外,是否有任何已知限制?包含 Mbs 或 Gbs 文本的字符串会降低性能吗?
为了记录,我确实尝试运行该循环....它只是让我的浏览器崩溃:(也许如果我进行一些调整并再试一次。
【问题讨论】:
-
你有多少内存? :) 对字符串的操作由它们的实现定义。例如,
length是 O(1),所以它不会变大(也许前期分配成本非常小,但当然,填充这么多内存是有成本的) -
我认为驳回这个问题是非常不公平的。至少在智力上很有趣。你愿意关闭这个而不是 4040954590 作业问题吗?来吧。
-
响应 ECMAScript 规范中似乎没有。 ECMAScript 2015 - 6.1.4 The String Type上有一段关于这个的。
-
@VaughanHilts - 你是对的,它是比作业问题更有趣。编写代码是关于生活在限制范围内。在这里贡献也是关于这个 - 我同意这个问题没有错。
标签: javascript string memory