ホームページ  >  記事  >  ウェブフロントエンド  >  es6 と es5 の違いは何ですか

es6 と es5 の違いは何ですか

青灯夜游
青灯夜游オリジナル
2021-09-03 14:57:2424077ブラウズ

相違点: 1. es6 には新しいアロー関数がありますが、es5 にはありません; 2. ES6 には新しいブロックレベルのスコープがありますが、es5 にはありません; 3. ES6 ではクラスの概念が導入され、プロトタイプは使用されなくなりましたES5 のようなチェーン 継承を実装; 4. ES6 ではデフォルトの関数パラメーターを設定できますが、es5 では設定できません; 5. ES6 では Promise 機能が追加されました。

es6 と es5 の違いは何ですか

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

ES5 と比較して、ES6 には次のような多くの新機能があります:

1. 新しい矢印関数

アロー機能による問題解決

  • 記述方法を簡略化します。アロー関数は関数本体が 1 行の場合に適しており、複数行の場合は通常の関数を使用して可読性を高めることができます。

    コーディングを減らし、構造を明確にする

  • これを明確にします。従来の JS の this は定義時ではなく実行時に決定されますが、アロー関数の this は定義時に決定され、変更できず、call、apply、bind などのメソッドによって変更することもできません。

    これが実行時に誰を指しているのかを明確にしてください。実行時にこれが何を指しているのかを判断する必要はありません

    注: アロー関数には、自身の this、その this は外側の this で、This はアロー関数ではなかった前の関数です。 jsの仕組み上、アロー関数ではない関数のスコープを指します。

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

    通常の関数の宣言は、変数の昇格において最も高度なものです。 arrow この関数には
  • #関数プロモーション

    アロー関数には
  • #this

    ## がありません#、関数本体内のこれ オブジェクトは、それが使用されるオブジェクトではなく、定義されるオブジェクトです。 アロー関数には

    引数##がありません# オブジェクト。オブジェクトは関数本体に存在しません。を使用したい場合は、残りのパラメータを使用できます
  • arrow functionはコンストラクターとして使用できません

    、new では使用できず、プロパティはありません
  • # #call メソッドと apply メソッドにはパラメータのみがあり、スコープはありません

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

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

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

    ES6 での変数の構造割り当て (例: var) [a,b,c] = [0,1,2];
  • ##3. クラスの継承

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

4. デフォルトの関数パラメータを設定する

ES6 では、関数 A (x, y=9) などのデフォルトの関数パラメータを設定できます。 {} ;

5.promise

promise 生成の背景: コールバック地獄の問題の解決と非同期リクエストの処理

promise使用法: チェーン タイプ呼び出し、成功および失敗コールバック、3 つの状態、保留状態が変化したときにトリガーされます。一度ステータスが変化すると、再度ステータスが変化することはありません。 #6. テンプレート文字列

7. 割り当て構造 [推奨学習:

JavaScript 上級チュートリアル

]

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。