JavaScript
RangeError: Invalid array length
配列の長さに不正な値を指定している
こんな症状
new Array() に負の数や小数を渡すとエラーになる。配列の作成で起きるよ。
まず試す
new Array() には0以上の整数を渡す。変数なら Math.max(0, Math.floor(値)) で安全にする。
js
// ✅ 0以上の整数
const arr = new Array(5);
// ✅ リテラルの方が安全で読みやすい
const list = [1, 2, 3];これで直らなければ、下の「自分のケース」を確認。
🔍 自分のケースはどれ?
- ✓new Array(-1) など負の数
→ 0以上の整数にする。 - ✓new Array(1.5) など小数
→ 整数にする。Math.floor で丸める。 - ✓変数の値が意図せず負/小数になった
→ Math.max(0, Math.floor(値)) で安全な長さにする。
なぜ起きる?
new Array(-1)やnew Array(1.5)のように、配列の長さとして無効な値を指定しているよ。配列の長さは0以上の整数(0〜2^32-1)でなければならないんだ。変数の値が意図せず負数や小数になっている場合にも発生するよ。
✕ エラーが起きるコード
const arr = new Array(-1);
// 負の長さ✓ 直したコード
const arr = new Array(5);
// 正の整数✅ 直ったか確認
配列が RangeError なく作成できればOK。
この解決法は役立ちましたか?
🔗 関連するエラー
- Uncaught RangeError: Invalid time value — Invalid Date に対して日付メソッドを呼んでいる
- Invalid left-hand side in assignment — 代入できないものに代入しようとしている
- Uncaught TypeError: Cannot read properties of undefined (reading 'length') — undefinedに対して.lengthを読んでいる
- Uncaught ReferenceError: xxx is not defined — 変数・関数名のタイポ
- Uncaught TypeError: Cannot read properties of null (reading 'addEventListener') — 取得しようとしたHTML要素が見つかっていない
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
✏️ 手を動かして練習
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- JavaScriptとは?初心者向けにわかりやすく解説 — 変数・関数・イベントの基本
- JavaScriptでボタンクリックを動かす方法 — ボタンクリック時の動作を解説