blob: 7f2ef49d74dea36e8111bf463c875cb26cafc8e7 (
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
---
title: 'SyntaxError: "x" is a reserved identifier'
slug: Web/JavaScript/Reference/Errors/Reserved_identifier
tags:
- Error
- Errors
- JavaScript
- SyntaxError
translation_of: Web/JavaScript/Reference/Errors/Reserved_identifier
---
<div>{{jsSidebar("Errors")}}</div>
<h2 id="メッセージ">メッセージ</h2>
<pre class="syntaxbox">SyntaxError: "x" is a reserved identifier (Firefox)
SyntaxError: Unexpected reserved word (Chrome)</pre>
<h2 id="エラータイプ">エラータイプ</h2>
<p>{{jsxref("SyntaxError")}}</p>
<h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2>
<p><a href="/ja/docs/Web/JavaScript/Reference/Lexical_grammar#キーワード">予約語</a>を識別子として使用した場合、エラーをスローします。これらは strict モードと通常モードの双方で予約されています:</p>
<ul>
<li><code>enum</code></li>
</ul>
<p>次のものは strict モードのコードでのみ予約されています:</p>
<ul class="threecolumns">
<li><code>implements</code></li>
<li><code>interface</code></li>
<li>{{jsxref("Statements/let", "let")}}</li>
<li><code>package</code></li>
<li><code>private</code></li>
<li><code>protected</code></li>
<li><code>public</code></li>
<li><code>static</code></li>
</ul>
<h2 id="例">例</h2>
<h3 id="Strict_モードと_非_Strict_モードで予約されているキーワード">Strict モードと 非 Strict モードで予約されているキーワード</h3>
<p><code>enum</code> 識別子は全般的に予約されています。</p>
<pre class="brush: js example-bad">var enum = { RED: 0, GREEN: 1, BLUE: 2 };
// SyntaxError: enum is a reserved identifier
</pre>
<p>strict モードのコードでは、より多くの識別子が予約されています。</p>
<pre class="brush: js example-bad">"use strict";
var package = ["potatoes", "rice", "fries"];
// SyntaxError: package is a reserved identifier
</pre>
<p>これらの変数名を変更する必要があります。</p>
<pre class="brush: js example-good">var colorEnum = { RED: 0, GREEN: 1, BLUE: 2 };
var list = ["potatoes", "rice", "fries"];</pre>
<h3 id="古いブラウザーを更新する">古いブラウザーを更新する</h3>
<p>たとえば、<code><a href="/ja/docs/Web/JavaScript/Reference/Statements/let">let</a></code> や <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/class">class</a></code> をまだ実装していない古いブラウザーを使用している場合、それらの新しい言語機能をサポートしているより新しいブラウザーにアップデートすべきです。</p>
<pre class="brush: js">"use strict";
class DocArchiver {}
// SyntaxError: class is a reserved identifier
// (たとえば、Firefox 44 以前の古いブラウザーはエラーをスローします)
</pre>
<h2 id="関連項目">関連項目</h2>
<ul>
<li><a href="http://wiki.c2.com/?GoodVariableNames">Good variable names</a></li>
</ul>
|