aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/javascript/reference/errors/equal_as_assign/index.html
blob: f123401d42aedc39b6f171943c8643d5a22a6df4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
---
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
---
<div>{{jsSidebar("Errors")}}</div>

<p>JavaScript の警告 "test for equality (==) mistyped as assignment (=)?" は、代入 (<code>=</code>) が通常は等価性 (<code>==</code>) の検査をすべき場面にあった場合に発生します。</p>

<h2 id="Message">エラーメッセージ</h2>

<pre class="brush: js">Warning: SyntaxError: test for equality (==) mistyped as assignment (=)?
</pre>

<h2 id="エラータイプ">エラータイプ</h2>

<p>(Firefox のみ) {{jsxref("SyntaxError")}} の警告であり、 <code>javascript.options.strict</code> の設定が <code>true</code> に設定されていた場合に発生します。</p>

<h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2>

<p>代入 (<code>=</code>) が通常は等価性 (<code>==</code>) の検査をすべき場面にあった場合に発生します。デバッグを行いやすくするために、 JavaScript は (厳密な警告が有効な場合は) このパターンについて警告を出します。</p>

<h2 id="例"></h2>

<h3 id="Assignment_within_conditional_expressions">条件式内での代入</h3>

<p>(<code><a href="/ja/docs/Web/JavaScript/Reference/Statements/if...else">if...else</a></code> のような) 条件式内では、単純な代入を行わないことをお勧めします。コードを一目見たときに、代入は等価と混同しやすいからです。たとえば、以下のコードは使用しないでください。</p>

<pre class="brush: js example-bad">if (x = y) {
  // 正しいことを実行する
}
</pre>

<p>条件式内で代入を行う必要がある場合、一般的には次のように、代入の周りに追加の括弧を置きます。</p>

<pre class="brush: js">if ((x = y)) {
  // 正しいことを実行する
}</pre>

<p>または、本当は比較演算子 (<code>==</code><code>===</code> など) を使用しようとしたのかもしれません。</p>

<pre class="brush: js">if (x == y) {
  // 正しいことを実行する
}</pre>

<h2 id="関連項目">関連項目</h2>

<ul>
 <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/if...else">if...else</a></code></li>
 <li><a href="/ja/docs/Web/JavaScript/Reference/Operators#equality_operators">等価演算子</a></li>
</ul>