--- title: 'SyntaxError: test for equality (==) mistyped as assignment (=)?' slug: Web/JavaScript/Reference/Errors/Equal_as_assign tags: - Error - Errors - JavaScript - SyntaxError translation_of: Web/JavaScript/Reference/Errors/Equal_as_assign ---
JavaScript の警告 "test for equality (==) mistyped as assignment (=)?" は、代入 (=
) が通常は等価性 (==
) の検査をすべき場面にあった場合に発生します。
Warning: SyntaxError: test for equality (==) mistyped as assignment (=)?
(Firefox のみ) {{jsxref("SyntaxError")}} の警告であり、 javascript.options.strict
の設定が true
に設定されていた場合に発生します。
代入 (=
) が通常は等価性 (==
) の検査をすべき場面にあった場合に発生します。デバッグを行いやすくするために、 JavaScript は (厳密な警告が有効な場合は) このパターンについて警告を出します。
(if...else
のような) 条件式内では、単純な代入を行わないことをお勧めします。コードを一目見たときに、代入は等価と混同しやすいからです。たとえば、以下のコードは使用しないでください。
if (x = y) { // 正しいことを実行する }
条件式内で代入を行う必要がある場合、一般的には次のように、代入の周りに追加の括弧を置きます。
if ((x = y)) { // 正しいことを実行する }
または、本当は比較演算子 (==
や ===
など) を使用しようとしたのかもしれません。
if (x == y) { // 正しいことを実行する }