JavaScript
Expected an assignment or function call
式を書いただけで代入も呼び出しもしていない
こんな症状
比較演算子(===)と代入演算子(=)を混同している。式文の書き方で起きるよ。
まず試す
代入したいなら = を使う。比較結果は変数に入れるか if/return の中で使う。
js
// ❌ 結果をどこにも使っていない
isPassed === score >= 60;
// ✅ 代入は =
isPassed = score >= 60;これで直らなければ、下の「自分のケース」を確認。
🔍 自分のケースはどれ?
- ✓代入のつもりで === を書いた
→ 代入は = に直す(=== は比較)。 - ✓比較結果を使いたい
→ const result = a === 1; のように変数に入れる。 - ✓条件にしたい
→ if (a === 1) や return a === 1; の中で使う。
なぜ起きる?
式を書いただけで、代入も関数呼び出しもしていないよ。例えばa === 1;と書いても比較結果を使っていないから意味がないんだ。if(a === 1)のように条件式の中で使うか、const result = a === 1;のように結果を変数に入れる必要があるよ。
✕ エラーが起きるコード
let isPassed = false;
const score = 80;
// 代入したつもりが比較になっている(結果をどこにも使っていない)
isPassed === score >= 60;
// ESLint: Expected an assignment or function call and instead saw an expression✓ 直したコード
let isPassed = false;
const score = 80;
// ✅ 代入は = を使う
isPassed = score >= 60;
console.log(isPassed); // true✅ 直ったか確認
保存して再読み込み。警告が消え、意図どおりに代入/判定されればOK。
この解決法は役立ちましたか?
🔗 関連するエラー
- Invalid left-hand side in assignment — 代入できないものに代入しようとしている
- TypeError: xxx is not a function — 関数でないものを呼び出している
- TypeError: undefined is not an object (evaluating 'obj.name') — 存在しないオブジェクトのプロパティにアクセスしている
- Uncaught TypeError: Assignment to constant variable. — constで宣言した変数に再代入しようとした
- Uncaught TypeError: x.forEach is not a function — forEachできない値に対してforEachしている
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
✏️ 手を動かして練習
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- JavaScriptとは?初心者向けにわかりやすく解説 — 変数・関数・イベントの基本
- JavaScriptでボタンクリックを動かす方法 — ボタンクリック時の動作を解説