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()
, с параметром count
, указывающим количество повторений строки. Параметр может принимать значения между 0 и положительной Infinity
, и не может быть отрицательным числом. Диапазон допустимых значений может быть описан следующим образом: [0, + ∞).
Полученная строка также не может превышать максимальный размер строки, который может отличаться в различных движках JavaScript. В Firefox (SpiderMonkey) максимальный размер строки составляет 228 -1 (0xFFFFFFF
).
Примеры
Неверно
js
"abc".repeat(Infinity); // RangeError
"a".repeat(2 ** 28); // RangeError
Верно
js
"abc".repeat(0); // ''
"abc".repeat(1); // 'abc'
"abc".repeat(2); // 'abcabc'
"abc".repeat(3.5); // 'abcabcabc' (count will be converted to integer)