Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
このページのリストは JavaScript で廃止予定(まだ使用できるが削除する予定)とされた、あるいは既に廃止され使用不可となった機能の一覧です。
これらの非推奨の機能は現在でも使用することができますが、すべての JavaScript エンジンで実装されているとは限らないため、注意して使用する必要があります。 コードからこれらの使用を除去するよう作業を行うべきです。
これらの非推奨機能のいくつかは、 ECMAScript 仕様書の付録 B の章に掲載されています。この章は規範的なオプションとして記述されています。つまり、ウェブブラウザーのホストはこれらの機能を実装しなければなりませんが、ウェブ以外のホストは実装しなくても構いません。これらの機能を削除すると後方互換性の問題が発生し、旧形式のウェブサイトが壊れてしまうので、おそらく安定しているのでしょう。(JavaScript で「ウェブを壊すな」という設計目標があります。)それでも、これらはクロスプラットフォームで互換性がなく、すべての解析ツールで対応していないかもしれないので、付録 B の序文にあるように、使用しないことが推奨されます。
… この付録で指定された言語機能および動作にはすべて、1つまたは複数の望ましくない特性があり、古い使用方法がなくなれば、この仕様から除去されることになります。…
…プログラマーは新しい ECMAScript コードを書くときに、これらの機能や振る舞いを使用したり、その存在を想定したりしてはいけません。…
他にも、仕様書本体にあるとはいえ、規範的なオプションとしてマークされているものもあり、依存してはいけません。
JavaScript のソースは、スクリプトとして解釈された場合、あたかもスクリプトが <script> タグの一部であるかのように、 HTML 風のコメントが利用できます。
以下は、ウェブブラウザー(または Chrome を駆動する V8 エンジンを使用する Node.js)で実行するときに有効な JavaScript です。
<!-- と --> はどちらも // のように動作し、行頭のコメントになります。 --> は行頭でのみ有効ですが(後置デクリメントや大なり演算子が続く場合の曖昧さを避けるため)、 <!-- は行のどの位置でも使用することができます。
以下のプロパティは非推奨です。これらは置換文字列で使用しても効果がありません。
$1–$9もしあれば、一致した括弧で囲まれた部分文字列です。
input, $_正規表現を照合する文字列です。
lastMatch, $&最後に一致した部分文字列です。
lastParen, $+もしあれば、一致した括弧で囲まれた最後の部分文字列です。
leftContext, $`直近に一致した部分文字列の直前の部分文字列です。
rightContext, $'直近に一致した部分文字列の直後の部分文字列です。
警告: これらの静的プロパティは、外部コードと対話する際の問題を発生させる可能性があるため、使用しないようにしましょう。
compile() メソッドは非推奨です。代わりに新しい RegExp のインスタンスを構築してください。
以下の正規表現の構文は非推奨であり、Unicode 非対応モードでのみ利用できます。Unicode 対応モードでは、これらはすべて構文エラーとなります。
with 文は非推奨であり、厳格モードでは利用できません。
for...in ループヘッダーの var 宣言での初期化子は非推奨であり、厳格モードでは構文エラーになります。初期化子の式が評価され、変数に割り当てられますが、ループの最初の反復処理で値がすぐに再割り当てされます。
通常、try...catch 文の catch ブロックには、catch() でバインドされた変数と同じ名前の変数宣言を置くことはできません。拡張文法では、catch ブロックに catch でバインドされた識別子と同じ名前の宣言済み変数 var を置くことができます。ただし、catch のバインドが単純な識別子であり、構造分解 ではない場合に限ります。ただし、この変数の初期化と割り当ては、上位のスコープ変数ではなく、catch にバインドされた識別子に対してのみ作用します。このため、動作がわかりにくい場合があります。
これは仕様の付録Bに掲載されているため、どこでも実装されているとは限りません。 catch ブロックで宣言された変数と、catch バインドされた識別子との間で名前の競合が生じないようにしてください。
これらの廃止された機能は、 JavaScript から完全に削除され、表示されているバージョンの JavaScript からは使用できなくなりました。
以下のプロパティは RegExp インスタンスのものとなり、 RegExp コンストラクターのものではなくなりました。
| global | 文字列中の使用可能なすべての照合に対して正規表現をテストするか、最初の照合のみに対してテストするかを指定します。 |
| ignoreCase | 文字列の照合を試みる際に、大文字と小文字を無視するかどうかを指定します。 |
| lastIndex | 次の照合を始める位置のインデックス。 |
| multiline (RegExp.$* でも) | 複数行にまたがる文字列を検索するかどうか。 |
| source | パターンのテキストです。 |
valueOf() メソッドは、 RegExp に特化したメソッドではなくなりました。自分自身を返す Object.prototype.valueOf() を使用します。
| __count__ | ユーザー定義オブジェクトに直接定義された列挙可能なプロパティの数を返します。 | Object.keys() |
| __parent__ | オブジェクトのコンテキストを指し示します。 | 直接の置き換えなし |
| __iterator__ | 旧形式のイテレーターと共に使用 | Symbol.iterator および新しい反復処理プロトコル |
| __noSuchMethod__ | 存在しないプロパティがメソッドとして呼ばれたときに呼び出されるメソッド。 | Proxy |
| Object.prototype.eval() | 指定したオブジェクトのコンテキスト内の JavaScript コードの文字列を評価します。 | 直接の置き換えなし |
| Object.observe() | オブジェクトに対する変更を非同期に監視します。 | Proxy |
| Object.unobserve() | オブザーバーを削除します。 | Proxy |
| Object.getNotifier() | Object.observe() で変更観測を合成的に発生させることができる通知オブジェクトを作成します。 | 直接の置き換えなし |
| Object.prototype.watch() | プロパティが代入されたときに呼び出されるハンドラーコールバックをプロパティに取り付けます。 | Proxy |
| Object.prototype.unwatch() | プロパティの監視ハンドラーを削除します。 | Proxy |
| Array.observe() | 配列に対する変更を非同期に監視します。 | Proxy |
| Array.unobserve() | オブザーバーを削除します。 | Proxy |
配列、数値、文字列などの toSource() メソッドと uneval() グローバル関数は廃止されました。代わりに toString() を使用するか、自分自身でシリアライゼーションメソッドを書いてください。
旧形式のジェネレーター関数文と旧形式のジェネレーター関数式は削除されました。旧形式のジェネレーター関数の構文は function キーワードを再利用しており、本体に 1 つ以上の yield 式があると自動的にジェネレーター関数になります - これは今では構文エラーになっています。代わりに function* 文と function* 式を使用するようにしてください。
配列内包とジェネレーター内包が削除されました。
バージョン 26 以前の Firefox では、標準のイテレータープロトコルに類似した別のイテレータープロトコルを実装していました。オブジェクトが next() メソッドを実装しており、呼び出すたびに値を生成し、反復処理の終わりには StopIteration オブジェクトを投げている場合は、そのオブジェクトは古いイテレーターであると言えます。この古いイテレーターのプロトコルは、標準的なイテレーターのプロトコルとは異なる形をとっています。
この機能は、StopIteration グローバルコンストラクタとともに、 Firefox 58+ で削除されました。将来に向けた使用方法としては、for...of ループとイテレータープロトコルを使用することを検討してください。
シャープ変数は廃止されました。循環構造を作成するには、一時変数を使用してください。
This page was last modified on 2025年6月12日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.