ホームページ > ウェブフロントエンド > フロントエンドQ&A > ecmascript5と6の違いは何ですか

ecmascript5と6の違いは何ですか

WBOY
リリース: 2022-07-01 16:33:59
オリジナル
1747 人が閲覧しました

ecmascript5 と 6 の違い: 1. ecmascript6 には新しいブロックレベルのスコープがありますが、ecmascript5 にはありません; 2. デフォルトの関数パラメータは ecmascript6 に設定できますが、ecmascript5 には設定できません; 3. ecmascript6 のアロー関数は使用できますが、ecmascript5 にはアロー関数がありません。

ecmascript5と6の違いは何ですか

#このチュートリアルの動作環境: Windows10 システム、ECMAScript 6.0&&ECMAScript 5.0 バージョン、Dell G3 コンピューター。

ecmascript5 と 6 の違いは何ですか

ECMAScripts5 (ES5) は、2009 年に標準化された ECMAScripts の 5 番目のリビジョンです。 ECMAScripts6 (ES6) は、ECMAScript の 6 番目のリビジョンです。 2009 年に完成しました。2025 年に完成しました。ES2015 とも呼ばれる ES6 は、ES5 を改良したものです。ES5 と比較して、より簡潔になり、開発効率が向上しました。ES6 のいくつかの新機能:

1) 変数を宣言しますconst は定数を宣言します。2 つのブロックレベルのスコープがあります。ES5 にはブロックレベルのスコープはありません。var には変数のプロモーションがあります。let では、使用される変数を宣言する必要があります。

2) アロー関数関数ES6 の定義では、キーワード function() は使用されなくなりましたが、定義には ()=> を使用します

3) テンプレート文字列 テンプレート文字列は、バックティック (`) でマークされた文字列の拡張バージョンです。通常の文字列として使用するだけでなく、複数行の文字列の定義にも使用できます。

4) 代入の分割 ES6 では、配列やオブジェクトから値を抽出し、次に従って変数に値を割り当てることができます。特定のパターン

5 )... 展開演算子は配列またはオブジェクト内の値を展開できます; また、複数の値を変数に収集することもできます

詳細は次のとおりです以下:

新しい矢印関数

記述を簡素化しました。アロー関数は関数本体が 1 行の場合に適しており、複数行の場合は通常の関数を使用して可読性を高めることができます。コーディングを減らし、構造を明確にします

これを明確にします。従来の JS の this は定義時ではなく実行時に決定されますが、アロー関数の this は定義時に決定され、変更できず、call、apply、bind などのメソッドによって変更することもできません。実行時に this が誰を指しているのかを明確にしてください。実行時に this を判断する必要はありません。 注: アロー関数には独自の this はありません。this は外側の this であり、アロー関数ではない前の関数。 jsの仕組み上、アロー関数ではない関数のスコープを指します。

#アロー関数と通常の関数の違い

#通常の関数の宣言は変数の昇格が最も高く、アロー関数には関数の昇格がありません

  • アロー関数には this がありません。関数本体内の this オブジェクトは、それが使用されるオブジェクトではなく、定義されるオブジェクトです。アロー関数には引数オブジェクトがありません。オブジェクトは関数本体に存在しません。使用したい場合は、残りのパラメータを使用できます。

  • アロー関数はコンストラクターとして使用できません。また、新しい関数にすることも、プロパティを持たないこともできます。

  • call メソッドと apply メソッドにはパラメーターのみがあり、スコープはありません。

  • yield コマンドは使用できないため、アロー関数をジェネレーター関数として使用することはできません

  • ブロックレベルのスコープ

  • ES6 の let コマンド変数を宣言し、その使用法は var と似ていますが、let は JavaScript に新しいブロックレベルのスコープを追加します。ES5 にはブロックレベルのスコープはありません。また、var には変数のプロモーションの概念がありますが、let では使用される変数は次のとおりです。宣言される; const は定数を宣言します。

    ES6 での変数の構造割り当て (例: var [a,b,c] = [0 ,1,2];

クラス継承)

ES6 では、ES5 のような継承の実装にプロトタイプ チェーンは使用されなくなりましたが、Java に似たクラスの概念が導入されました。オブジェクト指向プログラミングの構文は多少似ていますが、この 2 つは異なります。違う。

拡張知識:

var、let、const の違い

var は繰り返し宣言できますが、let は繰り返し宣言できません

var はブロック レベルに制限されませんが、let はブロック レベルに制限されます

var はウィンドウにマッピングされます (属性が付加されます)が、let はウィンドウにマッピングされません。 window

var は宣言の上の変数にアクセスできますが、 let には一時的なデッド ゾーンがあります。宣言の上の変数にアクセスするとエラーが報告されます。

const には宣言の後に値を割り当てる必要があります。それ以外の場合は、エラーが報告されます

const 不変の量を定義し、それが変更されるとエラーが報告されます

const は let と同様にウィンドウにマップされず、ブロックレベルのスコープをサポートします。宣言より上の変数にアクセスするとエラーが報告されます

[関連推奨:

JavaScript ビデオ チュートリアル

Web フロントエンド

]

以上がecmascript5と6の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
es6
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート