×

JS报错发生了什么:RangeError: repeat count must be less than infinity

作者:流泪的石头2020.05.25来源:Web前端之家浏览:5550评论:0
关键词:RangeError

JS报错发生了什么: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)

分析原因

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

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

例子

错误类型:

'abc'.repeat(Infinity); // RangeError
'a'.repeat(2**28);      // RangeError

正确写法

'abc'.repeat(0);    // ''
'abc'.repeat(1);    // 'abc'
'abc'.repeat(2);    // 'abcabc'
'abc'.repeat(3.5);  // 'abcabcabc' (count will be converted to integer)

您的支持是我们创作的动力!
温馨提示:本文作者系流泪的石头 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://jiangweishan.com/article/js20200525a6.html

网友评论文明上网理性发言 已有0人参与

发表评论: