RangeError: repeat count must be less than infinity

Повідомлення

RangeError: argument out of range (Edge)
RangeError: repeat count must be less than infinity and not overflow maximum string size (Firefox)

RangeError: Invalid count value (Chrome)

Тип помилки

RangeError

Що сталось?

Був викликаний метод String.prototype.repeat(). Він має параметр count, що вказує, скільки разів потрібно повторити рядок. Його значення має бути від 0 та менше за позитивну нескінченність, та не може бути від'ємним числом. Діапазон дозволених значень можна описати так: [0, +∞).

Отриманий в результаті рядок також не може бути більшим за максимальний розмір рядка, який може відрізнятись між рушіями JavaScript. У Firefox (SpiderMonkey) максимальний розмір рядка дорівнює 228 -1 (0xFFFFFFF).

Приклади

Помилкове використання

'абв'.repeat(Infinity); // RangeError
'а'.repeat(2**28);      // RangeError

Правильне використання

'абв'.repeat(0);    // ''
'абв'.repeat(1);    // 'абв'
'абв'.repeat(2);    // 'абвабв'
'абв'.repeat(3.5);  // 'абвабвабв' (count буде перетворений на ціле число)

Див. також