aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/javascript/reference/deprecated_and_obsolete_features/index.html
blob: ac588247097e67a418d68b15a4fd86e0d3f10c8e (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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
---
title: 非推奨の機能、廃止された機能
slug: Web/JavaScript/Reference/Deprecated_and_obsolete_features
tags:
  - Deprecated
  - Guide
  - JavaScript
  - Obsolete
translation_of: Web/JavaScript/Reference/Deprecated_and_obsolete_features
---
<p>{{JsSidebar("More")}}</p>

<p>この付録リストは JavaScript で廃止予定 (まだ使用できるが削除する予定) とされた、あるいは既に廃止され使用不可となった機能の一覧です。</p>

<h2 id="Deprecated_features" name="Deprecated_features">非推奨の機能</h2>

<p>これらの非推奨機能はまだ使用可能かもしれません。しかし将来的には完全に削除されるでしょう。既にあなたがコード内でこれらを使用している場合は、代替となるコードに置き換えておく必要があります。</p>

<h3 id="RegExp_properties" name="RegExp_properties"><code>RegExp</code> オブジェクトのプロパティ</h3>

<p>以下のプロパティは非推奨です。これらは{{jsxref("String.replace", "文字列置換", "", 1)}}で使用しても効果がありません。</p>

<table class="standard-table">
 <tbody>
  <tr>
   <th>プロパティ</th>
   <th>説明</th>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.n", "$1-$9")}}</td>
   <td>(もしあれば)括弧で囲まれた部分文字列にマッチします。
    <p><strong>警告:</strong>このプロパティを使うことで、問題が起きる恐れがあります。なぜなら、ブラウザーの拡張がそれらを変更可能なためです。使用は避けるべきです。</p>
   </td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.input", "$_")}}</td>
   <td><code>input</code> プロパティを参照してください。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.multiline", "$*")}}</td>
   <td><code>multiline</code> プロパティを参照してください。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.lastMatch", "$&amp;")}}</td>
   <td><code>lastMatch</code> プロパティを参照してください。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.lastParen", "$+")}}</td>
   <td><code>lastParen</code> プロパティを参照してください。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.leftContext", "$`")}}</td>
   <td><code>leftContext</code> プロパティを参照してください。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.rightContext", "$'")}}</td>
   <td><code>rightContext</code> プロパティを参照してください。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.input", "input")}}</td>
   <td>正規表現がマッチする対象となる文字列。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.lastMatch", "lastMatch")}}</td>
   <td>最後にマッチした文字。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.lastParen", "lastParen")}}</td>
   <td>(もしあれば)最後に括弧で囲まれた部分文字列のマッチ。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.leftContext", "leftContext")}}</td>
   <td>一番最近のマッチに先行する部分文字列。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.rightContext", "rightContext")}}</td>
   <td>一番最近のマッチの後に続く部分文字列。</td>
  </tr>
 </tbody>
</table>

<p>以下は、現在、<code>RegExp</code> インスタンスのプロパティであり、もはや、<code>RegExp</code> オブジェクトのプロパティではありません。</p>

<table class="standard-table">
 <tbody>
  <tr>
   <th>プロパティ</th>
   <th>説明</th>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.global", "global")}}</td>
   <td>対象文字列で可能なマッチすべてに対して正規表現をテストするか、それとも、最初のマッチに対してのみテストするどうかのフラグ。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.ignoreCase", "ignoreCase")}}</td>
   <td>文字列でのマッチを適用する際に、大文字と小文字の違いを無視するかどうかのフラグ。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.lastIndex", "lastIndex")}}</td>
   <td>次のマッチが始まる位置。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.multiline", "multiline")}}</td>
   <td>複数行に渡って文字列を検索するかどうかのフラグ。</td>
  </tr>
  <tr>
   <td>{{jsxref("RegExp.source", "source")}}</td>
   <td>パターンのテキスト。</td>
  </tr>
 </tbody>
</table>

<h3 id="RegExp_methods" name="RegExp_methods"><code>RegExp</code> オブジェクトのメソッド</h3>

<ul>
 <li>{{jsxref("RegExp.compile", "compile()")}} メソッドは、非推奨です。</li>
 <li><code>valueOf</code> メソッドは、もはや <code>RegExp</code> のみのメソッドではありません。{{jsxref("Object.valueOf()")}} を使用してください。</li>
</ul>

<h3 id="Function_properties" name="Function_properties"><code>Function</code> オブジェクトのプロパティ</h3>

<ul>
 <li>{{jsxref("Global_Objects/Function/caller", "caller")}}{{jsxref("Global_Objects/Function/arguments", "arguments")}} プロパティは廃止されました。これは呼び出した関数を取得できてしまうためです。この arguments プロパティの代わりに、クロージャ内部の {{jsxref("Functions/arguments", "arguments")}} オブジェクトを使うべきです。</li>
</ul>

<h3 id="Legacy_generator" name="Legacy_generator">旧形式のジェネレーター</h3>

<ul>
 <li>{{jsxref("Statements/Legacy_generator_function", "旧形式のジェネレーター関数文")}}および{{jsxref("Operators/Legacy_generator_function", "旧形式のジェネレーター関数式")}}は非推奨です。代わりに {{jsxref("Statements/function*", "function* 文")}}および {{jsxref("Operators/function*", "function* 式")}}を使用してください。</li>
 <li>{{jsxref("Operators/Array_comprehensions", "JS1.7/JS1.8 の配列内包", "#Differences_to_the_older_JS1.7.2FJS1.8_comprehensions")}}および {{jsxref("Operators/Generator_comprehensions", "JS1.7/JS1.8 のジェネレーター内包", "#Differences_to_the_older_JS1.7.2FJS1.8_comprehensions")}}は非推奨です。</li>
</ul>

<h3 id="Iterator" name="Iterator">イテレーター</h3>

<ul>
 <li>{{jsxref("Global_Objects/StopIteration", "StopIteration")}} は非推奨です。</li>
 <li>{{jsxref("Global_Objects/Iterator", "Iterator")}} は非推奨です。</li>
</ul>

<h3 id="Object_methods" name="Object_methods">Object オブジェクトのメソッド</h3>

<ul>
 <li>{{jsxref("Object.watch", "watch")}} および {{jsxref("Object.unwatch", "unwatch")}} は非推奨です。代わりに {{jsxref("Proxy")}} を使用してください。</li>
 <li><code>__iterator__</code> は非推奨です。</li>
 <li>{{jsxref("Object.noSuchMethod", "__noSuchMethod__")}} は非推奨です。代わりに {{jsxref("Proxy")}} を使用してください。</li>
</ul>

<h3 id="Date_methods" name="Date_methods"><code>Date</code> オブジェクトのメソッド</h3>

<ul>
 <li>{{jsxref("Global_Objects/Date/getYear", "getYear")}}{{jsxref("Global_Objects/Date/setYear", "setYear")}} は「{{interwiki('wikipedia', '2000年問題')}}」の影響を受けます。代替策として、{{jsxref("Global_Objects/Date/getFullYear", "getFullYear")}} および {{jsxref("Global_Objects/Date/setFullYear", "setFullYear")}} の使用が推奨されます。</li>
 <li>新しいコードでは非推奨の {{jsxref("Global_Objects/Date/toGMTString", "toGMTString")}} メソッドは用いず、代わりに {{jsxref("Global_Objects/Date/toISOString", "toISOString")}} を用います。</li>
 <li>{{jsxref("Global_Objects/Date/toLocaleFormat", "toLocaleFormat")}} は非推奨です。</li>
</ul>

<h3 id="Functions" name="Functions">関数</h3>

<ul>
 <li>{{jsxref("Operators/Expression_closures", "式クロージャ", "", 1)}}は非推奨です。代わりに通常の {{jsxref("Operators/function", "functions")}} または{{jsxref("Functions/Arrow_functions", "アロー関数", "", 1)}}を使用してください。</li>
</ul>

<h3 id="Proxy" name="Proxy">Proxy</h3>

<ul>
 <li><a href="/ja/docs/Archive/Web/Old_Proxy_API">Proxy.create</a> および <a href="/ja/docs/Archive/Web/Old_Proxy_API">Proxy.createFunction</a> は非推奨です。代わりに {{jsxref("Proxy")}} を使用してください。</li>
 <li>以下のトラップは廃止しました:
  <ul>
   <li><code>hasOwn</code> ({{bug(980565)}}, Firefox 33).</li>
   <li><code>getEnumerablePropertyKeys</code> ({{bug(783829)}}, Firefox 37)</li>
   <li><code>getOwnPropertyNames</code> ({{bug(1007334)}}, Firefox 33)</li>
   <li><code>keys</code> ({{bug(1007334)}}, Firefox 33)</li>
  </ul>
 </li>
</ul>

<h3 id="Escape_sequences" name="Escape_sequences">エスケープシーケンス</h3>

<ul>
 <li>文字列内と正規表現リテラル内での、8 進表記のエスケープシーケンス (\ に続く、1 つ、2 つ、もしくは、3 つの 8 進表現の数字) は非推奨です。</li>
 <li>{{jsxref("Global_Objects/escape", "escape")}}{{jsxref("Global_Objects/unescape", "unescape")}} 関数は非推奨です。特殊文字のためのエスケープシーケンスをエンコードかデコードするためには、{{jsxref("Global_Objects/encodeURI", "encodeURI")}}{{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent")}}{{jsxref("Global_Objects/decodeURI", "decodeURI")}} もしくは {{jsxref("Global_Objects/decodeURIComponent", "decodeURIComponent")}} を使用してください。</li>
</ul>

<h3 id="String_methods" name="String_methods">String オブジェクトのメソッド</h3>

<ul>
 <li>{{jsxref("String.prototype.fontsize")}}{{jsxref("String.prototype.big")}} などの <a href="/ja/docs/tag/HTML%20wrapper%20methods">HTML ラッパーメソッド</a></li>
 <li>{{jsxref("String.prototype.quote")}} は Firefox 37 で削除しました。</li>
 <li>{{jsxref("String.prototype.search")}}{{jsxref("String.prototype.match")}}{{jsxref("String.prototype.replace")}} の非標準パラメータ <code>flags</code> は非推奨です。</li>
 <li>{{jsxref("String.prototype.substr")}} probably won't be removed anytime soon, but it's defined in <a href="https://www.ecma-international.org/ecma-262/9.0/index.html#sec-string.prototype.substr" rel="noopener">Annex B</a> of the ECMA-262 standard, whose <a href="https://www.ecma-international.org/ecma-262/9.0/index.html#sec-additional-ecmascript-features-for-web-browsers">introduction</a> states: "… Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code. …"</li>
</ul>

<h2 id="Obsolete_features" name="Obsolete_features">廃止された機能</h2>

<p>これらは JavaScript において完全に廃止されており、現在では使用不可となっています。</p>

<h3 id="Object" name="Object">Object</h3>

<table class="standard-table">
 <tbody>
  <tr>
   <th>プロパティ/メソッド</th>
   <th>概要</th>
  </tr>
  <tr>
   <td>{{jsxref("Global_Objects/Object/count", "__count__")}}</td>
   <td>ユーザーがオブジェクトに直接定義した、列挙可能なプロパティの個数</td>
  </tr>
  <tr>
   <td>{{jsxref("Global_Objects/Object/Parent", "__parent__")}}</td>
   <td>オブジェクトのコンテキストへのポインタ</td>
  </tr>
  <tr>
   <td>{{jsxref("Global_Objects/Object/eval", "Object.prototype.eval()")}}</td>
   <td>指定したオブジェクトのコンテキスト内の JavaScript コードの文字列を評価します。</td>
  </tr>
  <tr>
   <td>{{jsxref("Object.observe()")}}</td>
   <td>オブジェクトに対する変更を非同期に監視します。</td>
  </tr>
  <tr>
   <td>{{jsxref("Object.unobserve()")}}</td>
   <td>observer を削除します。</td>
  </tr>
  <tr>
   <td>{{jsxref("Object.getNotifier()")}}</td>
   <td>総合的に変更をトリガーできるオブジェクトを生成します。</td>
  </tr>
 </tbody>
</table>

<h3 id="Function" name="Function">Function</h3>

<table class="standard-table">
 <tbody>
  <tr>
   <th>プロパティ</th>
   <th>概要</th>
  </tr>
  <tr>
   <td>{{jsxref("Global_Objects/Function/arity", "arity")}}</td>
   <td>仮引数の個数</td>
  </tr>
 </tbody>
</table>

<h3 id="Array" name="Array">Array</h3>

<table class="standard-table">
 <tbody>
  <tr>
   <td>プロパティ</td>
   <td>説明</td>
  </tr>
  <tr>
   <td>{{jsxref("Array.observe()")}}</td>
   <td>配列に対する変更を非同期に監視します。</td>
  </tr>
  <tr>
   <td>{{jsxref("Array.unobserve()")}}</td>
   <td>observer を削除します。</td>
  </tr>
 </tbody>
</table>

<h3 id="Number" name="Number">Number</h3>

<ul>
 <li>{{jsxref("Number.toInteger()")}}</li>
</ul>

<h3 id="ParallelArray" name="ParallelArray">ParallelArray</h3>

<ul>
 <li>{{jsxref("ParallelArray")}}</li>
</ul>

<h3 id="Statements" name="Statements"></h3>

<ul>
 <li>{{jsxref("Statements/for_each...in", "for each...in")}} 文は非推奨です。代わりに {{jsxref("Statements/for...of", "for...of")}} を使用してください。</li>
 <li>分割代入型 {{jsxref("Statements/for...in", "for...in")}} は非推奨です。代わりに {{jsxref("Statements/for...of", "for...of")}} を使用してください。</li>
 <li>let ブロックおよび、 let 式は廃止されました。</li>
</ul>

<h3 id="E4X" name="E4X">E4X</h3>

<p>詳しくは <a href="/ja/docs/Archive/Web/E4X">E4X</a> をご覧ください。</p>

<h3 id="Sharp_variables" name="Sharp_variables">シャープ変数</h3>

<p>詳しくは <a href="/ja/docs/Archive/Web/Sharp_variables_in_JavaScript">Sharp variables in JavaScript</a> をご覧ください。</p>