RangeError: repeat count must be less than infinity
當 String.prototype.repeat() 方法的 count 引數為無窮大時,會發生 JavaScript 異常“重複計數必須小於無窮大”。
訊息
RangeError: Invalid string length (V8-based) RangeError: Invalid count value: Infinity (V8-based) RangeError: repeat count must be less than infinity and not overflow maximum string size (Firefox) RangeError: Out of memory (Safari) RangeError: String.prototype.repeat argument must be greater than or equal to 0 and not be Infinity (Safari)
錯誤型別
RangeError
哪裡出錯了?
已使用 String.prototype.repeat() 方法。它有一個 count 引數,指示字串重複的次數。它必須介於 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' (count will be converted to integer)