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
).
Примеры
Неверно
'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)