← エラー辞典に戻る

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。

🆘 まだ直らないときは

ESLint の no-unused-expressions ルールで、使われていない式を自動検出できる。

Q&Aで質問する →

この解決法は役立ちましたか?

🔗 関連するエラー

🔗 別カテゴリの関連エラー

📖 この問題を学べるレッスン

JSレッスン3:条件分岐で根本から理解する →

✏️ 手を動かして練習

このテーマの図解ドリルで実際に書いて確認する →

📝 関連ブログ記事

📖 関連する用語

🚀 JSレッスン3:条件分岐で根本解決しよう!

このエラーの背景にある仕組みを、手を動かしながら学べるレッスンがあります。完全無料・登録不要。

JSレッスン3:条件分岐へ →

❓ 関連するQ&A