Javascript における分割代入構文の詳細な説明

Javascript における分割代入構文の詳細な説明

序文

ES6 で初めて導入された「構造化代入構文」を使用すると、配列やオブジェクトの値を異なる変数に挿入できるようになります。難しそうに見えますが、実際には習得も使用も非常に簡単です。

構造化代入構文は JS 式です。 ES6 では、配列やオブジェクトから値を抽出し、特定のパターンに従って変数に値を割り当てることができます。これを構造化分解と呼びます。構造化代入により、プロパティ/値をオブジェクト/配列から取り出し、他の変数に割り当てることができます。

ES6 の構造化代入が登場する前は、変数に値を割り当てる必要がある場合、値を直接指定することしかできませんでした。

例えば:

a = 1 とします。
b = 2 とします。
c = 3 とします。
d = 4 とします。
e = 5 とします。

配列の構造化は非常に簡単です。配列内の各値に対して変数を宣言するだけです。配列内のインデックスの代わりに、より少ない変数を定義したり(つまり、最初のいくつかの値のみを処理する場合)、いくつかのインデックスをスキップしたり、REST パターンを使用して残りのすべての値を新しい配列に配置したりすることもできます。

定数数値 = [ 3, 6, 9, 12, 15 ];
定数[
 k, // k = 3
 l, // l = 6
 , // 値をスキップする (12)
 ...n // n = [12, 15]
] = 数値;

オブジェクト分解

オブジェクトの分割は配列の分割と非常によく似ていますが、主な違いは、オブジェクト内の各キーを名前で参照できるため、同じ名前の変数を作成できることです。また、キーを新しい変数名に分解し、必要なキーのみを分解してから、レスト モードを使用して残りのキーを新しいオブジェクトに分解することもできます。

定数obj = { a: 1、 b: 2、 c: 3、 d: 4 };
定数{
 a, // a = 1
 c: d, // d = 3
 ...残り // 残り = { b: 2, d: 4 }
} = オブジェクト;

ネストされた構造化分解

ネストされたオブジェクトと配列は、同じルールを使用して構造化分解できます。違いは、親オブジェクトを変数自体に格納しなくても、ネストされたキーまたは値を直接変数に分解できることです。

const ネスト = { a: { b: 1, c: 2 }, d: [1, 2]};
定数{
 a: {
  b: f, // f = 1
  ...g // g = {c: 2}
 },
 ...h // h = {d: [1, 2]}
} = ネスト;

高度な解体

配列はオブジェクトのように動作するため、オブジェクトの分割代入のキーとしてインデックスを使用することで、分割代入構文を使用して配列から特定の値を取得できます。このメソッドは、配列の他の属性 (配列の長さなど) を取得するためにも使用できます。最後に、デストラクチャリング値が未定義の場合、デストラクチャリングプロセスで変数のデフォルト値を定義することもできます。

定数 arr = [ 5, 'b', 4, 'd', 'e', 'f', 2 ];
定数{
 6: x, // x = 2
 0: y, // y = 5
 2: z, // z = 4
 長さ: カウント、// カウント = 7
 name = 'array', // name = 'array' (arr には存在しません)
 ...restData // restData = { '1': 'b', '3': 'd', '4': 'e', '5': 'f' }
} = arr;

要約する

これで、Javascript の分解代入構文に関するこの記事は終わりです。より関連性の高い JS 分解代入構文のコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScript 構造化分解割り当ての実践ガイド
  • JavaScript 構造化代入の詳細な説明
  • Javascript 構造化代入の詳細
  • JavaScript の構造化代入の一般的なシナリオと例 5 つ
  • JS ES6 変数分割代入の詳細な説明
  • JavaScript の構造化代入を理解するのに役立つ記事

<<:  nginxリバースプロキシのyum設定の詳細な手順

>>:  pt-heartbeat を使用して MySQL レプリケーションの遅延を監視する方法の詳細な説明

推薦する

ReactRouterの実装

ReactRouterの実装ReactRouterはReactのコアコンポーネントです。主にReac...

シンプルなスネークゲームを実現するネイティブjs

この記事では、スネークゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な内容...

SQL ファジー クエリ レポート: ORA-00909: パラメータの数が無効です。解決策

あいまいクエリにOracleデータベースを使用する場合、コンソール エラーは次の図に表示されます。理...

Dockerプライベートウェアハウスの構築とインターフェース管理の詳細な説明

1. レジストリについて公式 Docker ハブは、パブリックイメージを管理するのに適した場所です。...

MySQLの日付文字列タイムスタンプ変換の詳細な説明

時刻、文字列、タイムスタンプ間の変換は、日常生活でよく使用されます。よく使用されますが、私は使用する...

DockerでJenkinsをインストールし、初期プラグインのインストール失敗の問題を解決する

Jenkins をインストールした後、プラグインの初期ダウンロードが常に失敗し、インストールが失敗し...

...

シンプルなショッピングカートの最も完全なコード分析を実装する JavaScript (ES6 オブジェクト指向)

この記事では、シンプルなショッピングカートを実装するためのJavaScriptの具体的なコードを参考...

Xshell にショートカット コマンドを追加する方法

便利なターミナル エミュレーターである Xshell は、開発者がホスト サーバーをリモート管理する...

有名ウェブサイトのロゴにおすすめのフォント40選

世界で最も有名なウェブサイトのロゴデザインにはどんなフォントが使われているかご存知ですか?これらのフ...

Docker のポート解放失敗の解決策

今日、非常に奇妙な状況に遭遇しました。docker イメージを更新した後、docker-compos...

CSS で隠し要素を実現する 7 つの興味深い方法

序文非表示要素の 3 つの属性である表示、可視性、不透明度の類似点と相違点は、フロントエンドの就職面...

Vueコンポーネントのカスタムイベントの詳細な説明

目次要約する <テンプレート> <div> 要素 <h2>{{メ...

珍しいけれど役に立つJSテクニックをいくつか紹介します

序文プログラミング言語には通常、さまざまな隠されたトリックが含まれており、これらのトリックを上手に使...

docker コンペ応募でよく使われるコマンドのまとめ

アカウントにログイン DOCKER_REGISTRY=registry.cn-hangzhou.al...