JavaScript
🚨 SyntaxError: Invalid left-hand side in assignment
代入できないものに代入しようとしている
😰 こんな症状
代入文を書くと「Invalid left-hand side in assignment」と表示される。=と===の混同で起きやすいよ。
🔍 原因
if(a = 1)のように比較演算子(===)を代入演算子(=)と間違えている、または5 = xのようにリテラル値に代入しようとしているよ。代入の左辺(=の左側)には変数や配列要素など「代入可能なもの」しか書けないんだ。
❌ エラーが起きるコード
5 = x;
// 左辺が値 ✅ 直し方
1. 比較には===を使う。=は代入、===は比較。if(a === 1)が正しい。 2. 代入の左辺が変数になっているか確認する。 3. ESLintのno-cond-assignルールで条件式内の代入を検出できる。
✅ 修正後のコード
const x = 5; この解決法は役立ちましたか?
🔗 関連するエラー
- TypeError: Assignment to constant variable — constで宣言した変数に再代入している
- RangeError: Invalid array length — 配列の長さに不正な値を指定している
- Expected an assignment or function call — 式を書いただけで代入も呼び出しもしていない
- RangeError: Invalid time value — new Date()に無効な日付文字列を渡している
- Uncaught ReferenceError: xxx is not defined — 変数・関数名のタイポ
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- JavaScriptとは?初心者向けにわかりやすく解説 — 変数・関数・イベントの基本
- JavaScriptでボタンクリックを動かす方法 — ボタンクリック時の動作を解説