JavaScript
🚨 SyntaxError: Identifier 'x' has already been declared
同じ変数名を2回宣言している
😰 こんな症状
同じスコープ内でletやconstで同名の変数を2回宣言してエラーになる。変数の重複宣言で起きるよ。
🔍 原因
同じスコープ内でletやconstで同名の変数を2回宣言しているよ。let/constは同じスコープ内での再宣言を禁止しているんだ。長いファイルで同じ変数名を使ってしまったり、コピペで重複したりすることが原因だよ。
❌ エラーが起きるコード
let name = "太郎";
let name = "花子";
// 同じスコープで再宣言 ✅ 直し方
1. 2回目の宣言を削除するか、変数名を変える。 2. 再代入したいならletで宣言して代入のみ行う(let x = 1; x = 2;はOK)。 3. VS Codeの「変数のハイライト」機能で同名変数を確認する。
✅ 修正後のコード
let name = "太郎";
name = "花子";
// 再代入で変更 この解決法は役立ちましたか?
🔗 関連するエラー
- TypeError: Assignment to constant variable — constで宣言した変数に再代入している
- ReferenceError: Cannot access before initialization — let/constの宣言前にアクセスしている
- Assignment to constant variable — constで宣言した変数に再代入しようとした
- Cannot access before initialization — 変数の宣言前にアクセスした
- Uncaught ReferenceError: xxx is not defined — 変数・関数名のタイポ
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- JavaScriptとは?初心者向けにわかりやすく解説 — 変数・関数・イベントの基本
- JavaScriptでボタンクリックを動かす方法 — ボタンクリック時の動作を解説