この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 7794|答える: 0

[JavaScript] es6 拡張演算子 3点(...) )

[リンクをコピー]
掲載地 2020/06/19 12:31:11 | | |
意味

展開演算子(スプレッド)は3つのドット(...)です。 )。 これは休止パラメータの逆に似ていて、配列をカンマ区切られたパラメータの列に変換します。



この演算子は主に関数呼び出しに使用されます。



上記のコードでは、array.push(...) アイテム)と追加(...) どちらも関数呼び出しであり、どちらも拡張演算子を使用します。 この演算子は配列をパラメータの列に変換します。
拡張演算子は正規関数パラメータと組み合わせて使用でき、非常に柔軟です。



代替配列への適用方法

拡張演算子は配列を展開できるため、配列を関数の引数に変換するために適用メソッドを使う必要はありません。



ここに、適用メソッドの代わりに拡張演算子を使った実例があります。これは、配列の最大の要素の書き込みを簡素化するためにMath.maxメソッドを適用した方法です。



上記のコードによると、JavaScriptは配列の最大の要素を探す関数を提供しないため、配列をパラメータ列に変換する関数Math.max適用し、最大値を求めるだけです。 extensionオペレーターを使えば、Math.maxを直接使うことができます。
もう一つの例は、プッシュ関数を使って別の配列の尾部に配列を追加することです。



上記のコードのES5書き込みメソッドでは、プッシュメソッドのパラメータは配列ではならないため、適用メソッドを通じてプッシュメソッドを柔軟に使う必要があります。 拡張演算子を使えば、配列を直接プッシュメソッドに渡すことができます。
もう一つ例を挙げましょう。



演算子の適用範囲を拡大する

(1) 配列のマージ

拡張演算子は、数値の組み合わせを書く新しい方法を提供します。



(2) 分解割当と組み合わせる

拡張演算子は分解された割り当てと組み合わせて配列を生成することができます。



配列割り当てにextension演算子を使う場合、パラメータの最後の桁にしか置けません。そうでなければエラーが報告されます。



(3) 関数の返還値

JavaScript関数は1つの値しか返せず、複数の値を返す場合は配列やオブジェクトのみを返します。 拡張演算子はこの問題を解決するための回避策を提供します。



上記のコードはデータベースからデータ行を取り、演算子を拡張して直接コンストラクタDateに渡します。

(4) ストリング

拡張演算子は文字列を実配列に変換することも可能です。



上記の記述には重要な利点があり、32ビットのUnicode文字を正しく認識できます。



上記のコードを書く最初の方法としては、JavaScriptは32ビットのUnicode文字を2文字として認識し、拡張演算子の問題はありません。 したがって、文字列の長さを正しく返す関数は次のように書けます:



これは32ビットのUnicode文字を操作する関数に共通する問題です。 したがって、すべて拡張演算子で書き換えるのが最善です。



上記のコードでは、拡張演算子を使わなければ、文字列の逆演算は正しくありません。

(5) イテレーターインターフェースを実装するオブジェクト

イテレータインターフェース内の任意のオブジェクトは、拡張演算子を使えば真の配列に変換できます。



上記のコードでは、querySelectorAllメソッドがnodeListオブジェクトを返します。 それは配列ではなく、配列のようなオブジェクトです。 この場合、拡張演算子はNodeListオブジェクトがイテレータインターフェースを実装しているため、実際の配列に変換できます。
イテレーターインターフェースを導入していない配列のようなオブジェクトの場合、拡張オペレーターはそれらを実際の配列に変換できません。



上記のコードでは、arrayLikeは配列のようなオブジェクトですが、Iteratorインターフェースを展開しない場合、拡張オペレーターがエラーを報告します。 この場合、Array.fromメソッドを使ってarrayLikeを実際の配列に変換できます。

(6) 写像構造と集合構造、生成関数

拡張演算子は内部的にデータ構造のイテレータインターフェースを呼び出すため、イテレータインターフェースを持つオブジェクトはMap構造のような拡張演算子を使用できます。



ジェネレーター関数を実行するとトラバーサーオブジェクトを返すため、拡張演算子も使用可能です。



上記のコードでは、変数goはジェネレーター関数であり、実行後にトラバーサーオブジェクトを返します。このトラバーサルオブジェクトに対して拡張演算子を実行すると、内部トラバーサルで得られた値が配列に変換されます。
イテレーターインターフェースのないオブジェクトに対して拡張演算子を使うと、エラーが報告されます。





先の:Vue+ElementUI実装
次に:Angularプロジェクトリリース号
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com