8.4注意事項
その他
2021-02-26 09:37:46
訪問数: null
ES6
...
拡張演算子は、直接使用することなく、関数パラメータに配列を変換することができ apply
、 それを使用 に 割り当てを構造化代入と組み合わせ; 配列に文字列を変換し、 それを Iterator
使用することができる 長いがある限り インターフェースが(トラバーサインターフェースを呼び出します)。
Array.from()
:オブジェクトの場合(配列と同様(つまり、lengthプロパティが必要)、es6の新しいデータ構造とマップセットで構成されるオブジェクトをトラバースできます。 Iterator
インターフェイスの 展開 データ構造が文字列として回転できる 限り )転送配列 は2番目のパラメーターを受け入れ、配列 map
メソッドの ように機能します Array. from ( arrayLike, x => x * x) ;
Array. from ( arrayLike) . map ( x => x * x) ;
Array. from ( [ 1 , 2 , 3 ] , ( x) => x * x)
配列メソッドの概要: https : //blog.csdn.net/weixin_40693643/article/details/104424800
ES6では、オブジェクトのプロパティおよびメソッドとして、変数と関数を中括弧で直接書き込むことができます。
ES6が追加さ れ、 プロパティを Object.assign()
無視 enumerable
して false
、オブジェクト自体のコピーのみが属性を列挙できます。 注: これは浅いコピーです。ネストされたオブジェクトの置換を処理するためのものであり、追加するためのものではありません。
ES6 super
は、現在のオブジェクトのプロトタイプオブジェクトを指す キーワードを追加しました
ES2020では、チェーンが呼び出された ?.
ときに左側のオブジェクトがnullであるか未定義であるか を 直接判断する 、チェーン判断演算子が導入されて います。 そうである場合、ダウンしませんが、未定義を返します
ES2020では、 ??
||のように動作 するNull判定演算子が導入されて いますが、演算子の左側の値がnullまたは未定義の場合にのみ、右側の値が返されます。
Object.is()
2つの値が厳密に等しいかどうかを比較します + 0 === - 0
NaN === NaN
Object. is ( + 0 , - 0 )
Object. is ( NaN , NaN )
ES2017では、指定された Object.getOwnPropertyDescriptors()
オブジェクトのすべての独自のプロパティ(継承されていないプロパティ)の説明オブジェクトを返すメソッドが 導入されました
ES5 Object.keys
は、オブジェクト自体(継承を除く)が属性キー名をトラバースできるすべてのパラメーターの配列を返すメソッドを 導入し ます 。ES7 は、 リサイクルの 補足手段を Object.keys
サポート Object.values
し Object.entries
てウォークスルーする ために 導入されました for ... of
。 逆演算の Object.fromEntries()
メソッド Object.entries()
は、変換に使用され ます。 キーと値のペアの配列をオブジェクトに変換し(特にMap構造をオブジェクトに変換するのに適しています)、オブジェクトと 連携し、 URLSearchParams
クエリ文字列をオブジェクトに変換します
ES6では、 Symbol
一意の値を表す プリミティブデータ型が導入されました 。 ES6標準のシンボルはじめに第3版リーディングノート
ES6はデータ構造を提供します Set
(配列と同様に、メンバーの値は一意です); ES6は Map
、オブジェクトと同様の データ構造を提供し ますが、さまざまなタイプの値が可能なキーと値のペアのコレクションも 提供します キーとして使用する; ES6標準GettingStarted 3rdEditionリーディングノートセットおよびマップデータ構造
ES6は、 インスタンス パラメーター を var proxy = new Proxy(target, handler);
new Proxy()
生成 するためのプロキシインスタンスを 生成する ために使用されるプロキシコンストラクターをネイティブに提供し ます:インターセプトされるターゲットオブジェクト パラメーター:インターセプト動作をカスタマイズするために使用されます Proxy
target
handler
Reflect
ES6は、オブジェクトを操作するための新しいAPIを提供します
置く Object
(例えば、いくつかの方法 Object.defineProperty
の) 明らかに言語の内部にある対象 Reflect
オブジェクトを、
一部の Object
メソッドの戻り結果を 変更して 、より合理的にします。
してみましょう Object
操作は、機能の動作になり、いくつかのオブジェクトの操作が不可欠です。
'assign' in Object
Reflect. has ( Object, 'assign' )
Reflect
Proxy
オブジェクト のメソッドは、 オブジェクト のメソッドに 1対1 で 対応します。
ES6は Promise
言語標準に書き込まれます; ES6-Promiseオブジェクトの概要
Iterator
トラバーサー、役割:
さまざまなデータ構造に統一されたシンプルなアクセスインターフェイスを提供します
データ構造のメンバーを特定の順序で配置できるようにする
ES6は、新しいトラバーサルコマンド for ... of
ループを 作成しました 。 Iterator
インターフェイスは主に for .. of
使用 され ます。 for ... of
ループは 、 メソッド を呼び出さなくても Generator
、関数の実行中に生成された Iterator
オブジェクトを 自動的にトラバースできます 。 next
ES6は、非同期プログラミングのソリューションを提供します。 Generator
サンプルコード: function * helloWorldGenerator ( ) {
yield 'hello' ;
yield 'world' ;
return 'ending' ;
}
var hw = helloWorldGenerator ( ) ;
hw. next ( )
hw. next ( )
hw. next ( )
hw. next ( )
Generator
エラー処理コードを関数内にデプロイして、関数外でスローされたエラーをキャプチャできます function * gen ( x) {
try {
var y = yield x + 2 ;
} catch ( e ) {
console. log ( e) ;
}
return y;
}
var g = gen ( 1 ) ;
g. next ( ) ;
g. throw ( '出错了' ) ;
Thunk
関数は Generator
、 関数を自動的に実行する 方法です。パラメータにコールバック関数がある限り、任意の関数を関数 Thunk
の形式で 記述できます 。 Thunk
関数は 、 関数の Generator
自動プロセス管理に 使用できます 。
co
モジュールは Generator
関数の自動実行に も使用され ます。これにより、 Generator
関数エグゼキュータを 記述できなくなります 。 var gen = function * ( ) {
var f1 = yield readFile ( '/etc/fstab' ) ;
var f2 = yield readFile ( '/etc/shells' ) ;
console. log ( f1. toString ( ) ) ;
console. log ( f2. toString ( ) ) ;
} ;
var co = require ( 'co' ) ;
co ( gen) ;
co ( gen) . then ( function ( ) {
console. log ( 'Generator 函数执行完成' ) ;
} ) ;
ES2017は、導入された async
。その非同期操作がより便利になるように、関数(シンタックスシュガー・ジェネレータ機能を) アスタリスク機能が 交換され 、 置き換えられ ; Generator
*
async
yield
await
組み込みのエグゼキュータは、Generator関数とは異なり、 next
メソッド を呼び出す か、 co
モジュールを 使用 する必要があり ます。
戻り値は Promise
オブジェクトです
ES6ではクラスクラスの概念が導入されています。 注:クラスとモジュールはデフォルトで厳密モードです。クラスの変数昇格はありません。name属性は常にclassキーワードの直後にクラスの名前を返します。前にアスタリスクを追加した場合メソッド *
、それはメソッドが Generator
関数 であることを意味し ます; this
クラス 内の デフォルト は クラスのインスタンスを指します;
ES6 new
では、コマンドの new.target
属性 が 導入されました 。 この属性は通常、コンストラクターで使用され、新しいコマンドが作用するコンストラクターを返します。 コンストラクターがnewコマンドまたはReflect.construct()によって呼び出されない場合、new.targetはundefinedを返します。
クラス継承:
クラスは extends
キーワードを 介して 継承 できます 。
Object.getPrototypeOf
メソッドを使用して、サブクラスから親クラスを取得できます(クラスが別のクラスを継承するかどうかを判断できます)
super
キーワード:関数として呼び出されると、親クラスのコンストラクターを表します(ES6では、サブクラスのコンストラクターが super
関数を 1回実行する必要があり ます)。オブジェクトとして使用される場合、通常のメソッドでは、のプロトタイプオブジェクトを指します。親クラス。静的メソッドでは、父を指します。
転載: blog.csdn.net/weixin_40693643/article/details/107780461