【问题标题】:What is the maximum length of a string in JavaScript?JavaScript 中字符串的最大长度是多少?
【发布时间】: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


【解决方案1】:

ECMAScript 2016 (ed. 7) 建立了2^53 - 1 的最大长度 元素。以前,没有指定最大长度。在火狐中, 字符串的最大长度为2**30 - 2 (~1GB)。 在之前的版本中 到 Firefox 65,最大长度为 2**28- 1 (~256MB)。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length

【讨论】:

    猜你喜欢
    • 2010-12-16
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 2016-09-11
    • 2010-09-13
    • 1970-01-01
    • 2022-01-19
    相关资源
    最近更新 更多