JavaScript RangeError: Invalid array length
A plain-words explanation of this JavaScript message: what it means, the usual causes, and the steps that fix it.
The messageUncaught RangeError: Invalid array length
Make the error yourself
Run in Google Chrome 157.0.8103.51. This is the smallest example we could find that shows it.
JavaScript (in a script tag)
const size = -1;
const list = new Array(size);
console.log(list);Browser console (the real message)
RangeError: Invalid array lengthWhy it happens
An array length must be a whole number from 0 to 4,294,967,295. new Array(-1), a decimal such as new Array(2.5) or setting list.length = -1 is outside that range, so the engine raises a RangeError. In real programs the number usually comes from a calculation that went wrong, such as a count minus something, a value that is NaN, or an input that was never validated.
How to fix it
- Log the number that you pass in.
- Check it before use:
Number.isInteger(n) && n >= 0. - Use
Math.max(0, n)when a small negative result should mean "none". - For lists you build, use
[]andpushinstead of choosing a length first.
The corrected version
JavaScript (in a script tag)
const size = Math.max(0, -1);
const list = new Array(size);
console.log(list.length);Browser console (the corrected version)
0How to avoid it
Validate numbers from input and from calculations before using them as sizes or counts.
Questions
Why does new Array(3) print empty items?
It makes three empty slots, not three undefined values. Use Array.from({ length: 3 }, () => 0) to fill them.
This is an independent guide. It is not connected with Python, Microsoft, Google, GitHub or the Git project. Product names belong to their owners. Examples were run on 13 November 2026 in a practice folder or a blank workbook; your version may word a message slightly differently.