此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

RangeError: repeat count must be less than infinity

信息

RangeError: repeat count must be less than infinity and not overflow maximum string size (Firefox)

RangeError: Invalid count value (Chrome)

错误类型

RangeError

发生了什么?

代码中使用了 String.prototype.repeat() 方法。它有一个计数参数,表示重复该字符串的次数。该参数必须在 0 及正 Infinity 之间,且不能为负数。该值的合法范围可以这样表示: [0, +∞)。

其结果字符串也不能长于最大字符串,不同 JavaScript 引擎中可能有所不同。在 Firefox(SpiderMonkey)里最大字符串大小为 230 - 2(约 2GiB)。

示例

无效的

js
"abc".repeat(Infinity); // RangeError
"a".repeat(2 ** 30); // RangeError

有效的

js
"abc".repeat(0); // ''
"abc".repeat(1); // 'abc'
"abc".repeat(2); // 'abcabc'
"abc".repeat(3.5); // 'abcabcabc'(可以被转换为整数)

参见