ES6に関して、新しく追加されたもの、頻繁に使用されるもの、および経験

ES6

1.新しいブロックレベルのスコープ、つまり(let、const)

letによって宣言された変数は、letコマンドが配置されているコードブロックでのみ有効です。
constは読み取り専用定数を宣言します。一度宣言すると、定数の値を変更することはできません。
また、letとconstには変数の昇格がなく、letの値は変更でき、constによって宣言された変数は値を変更してはなりません。つまり、constが変数を宣言すると、すぐに初期化する必要があり、
ES6の前に後で割り当てられます。JavaScriptには、スコープの2つのタイプ(グローバル変数と関数内のローカル変数)しかあ​​りません。
const a; //エラーが報告されました。変数が宣言されたら、すぐに割り当てる必要があります。
const b = 2;
b = 3 //定数を定義した後、再割り当てできないため、エラーが報告されます。

3.クラス(クラス)を定義するためのシンタックスシュガーを追加しました
4.データ型(シンボル)を
追加しました5.変数構造の割り当てを追加しました({a} = {a:1}とします)
分解割り当てシンタックスは一種のJavascript式です。値を分解して割り当てることにより、属性/値をオブジェクト/配列から取り出して、他の変数に割り当てることができます。

let [a, b] = [10, 20];
console.log(a);
//  10
console.log(b);
// 20

6.関数パラメーターを使用すると、デフォルト値(fumction(a = 1){})を設定できます。残りのパラメーターが導入され、矢印関数(()=》 {})を
使用して、ES6矢印関数構文を使用して関数を定義します。 、および元の関数の「「function」キーワードと関数名の両方を削除し、「=>」を使用してパラメータリストと関数本体を接続します。
関数パラメーターが1つしかない場合は括弧を省略できますが、パラメーターがない場合は括弧を省略できません。
1)矢印関数thisは、呼び出されたときのthisではなく、親スコープのthisです
。thisarrow関数は、常にその親スコープを指します。呼び出し、適用、バインドなど、どのメソッドも変更できません。
通常の関数のthisは、それを呼び出したオブジェクトを指します。

2)矢印関数はコンストラクターとして使用できず、newは使用できません

3)矢印関数は、呼び出しと適用によって呼び出されます。このポイントは変更されず、パラメーターのみが渡されます。

4)矢印関数にはプロトタイププロパティがありません
。7メソッドのIsArrayなどの配列にApiが追加され、配列インスタンスにentries()、keys()、values()が追加されます。8
。オブジェクトと配列が追加されます
spread演算子(... arr)オブジェクトのspread演算子(...)は、パラメーターオブジェクト内のすべてのトラバース可能な属性を取り出し、それらを現在のオブジェクトにコピーするために使用されます

let bar = { a: 1, b: 2 };
let baz = { ...bar }; // { a: 1, b: 2 }

9. ES6はモジュール性(インポート、エクスポート)を追加します
。以前のjavascriptにはモジュールの概念はありません。モジュール式の操作を実行する場合は、サードパーティのクラスライブラリを導入する必要があります。技術の進歩に伴い、フロントエンドとバックエンドが分離され、フロントエンドビジネスはますます複雑になっています。JavaScriptがモジュールを初めてサポートするようになったのは、ES6がモジュール性をもたらしたときでした。ES6のモジュール性は、エクスポートとインポートの2つのモジュールに分かれています。
ES6では、各モジュールはファイルです。ファイルで定義された変数、関数、およびオブジェクトを
外部から取得することはできません。モジュールの内容を外部で読み取る必要がある場合は、エクスポートによって公開する必要があります。
デフォルトのエクスポート(デフォルトのエクスポート)
モジュールは、デフォルトのエクスポートを1つだけ持つことができます。デフォルトのエクスポートの場合、インポートの名前がエクスポートの名前と一致しない可能性があります。

export default function(){
    return "默认导出一个方法"
}

エクスポートする必要のあるすべての変数をオブジェクトに配置してから、デフォルトのエクスポートでエクスポートできます。

let res = {a:1}
export default res 

インポートされた複数のファイルで変数名が同じである場合、名前の競合の問題が発生します。この問題を解決するために、ES6は名前を変更する方法を提供します。名前をインポートするときにこれを行うことができます。

import {myName as name} from "./test.js";

10. SetおよびMapデータ構造(arr.Set()、arr.map())を追加しました。Set
は配列に似ていますが、メンバーの値は一意であり、重複はありません。new Set()を使用してSetインスタンス
マップを作成するのはオブジェクトに似ていますが、キーの範囲は文字列に限定されません。さまざまなタイプの値をキー値として使用できます。new Map()を使用してMapインスタンスを作成します
11.プロキシインスタンスを生成するためのプロキシコンストラクターをネイティブに提供します(var proxy = new Proxy(target、handle);)12
ジェネレーターとイテレーターを追加しました

おすすめ

転載: blog.csdn.net/t5_5_5_5_5_7_7/article/details/109602195