脱構築とオブジェクトの配列の重要な違いがあります。
アレイの要素が順に配置され、変数の値は、その位置によって決定されます
オブジェクトのプロパティは、注文していない、と変数が正しい値を得るために、同じ名前の属性でなければなりません。
基本的な使い方
- 解体に失敗した場合は、変数の値が等しいです
undefined
。ましょう{バー、FOO} = {FOO: 'AAA'、バー: 'BBB' }。 FOO // "AAA" バー// "BBB" {}バズましょう = {FOO: 'AAA'、バー: 'BBB' }; バズ// 未定義
- 変数名や属性名が矛盾している場合は、次のように、それが書かれている必要があります。
ましょう{FOO:バズ} = {FOO: 'AAA'、バー: 'BBB' }。 バズ// "AAA" のfoo // エラー:fooが定義されていません
上記のコードは
foo
、一致したパターンでbaz
可変です。本当に割り当ては、変数であるbaz
というよりも、モード、foo
オブジェクトの解体のデフォルト
- 条件の発効のデフォルト値は、そのオブジェクトのプロパティの値が正確に同じです
undefined
。VAR {X = 3} = {}; X // 3 VAR {X、Y = 5} = {X 1 }。 X // 1つの Y // 5 VAR {X:Y = 3} = {}; Y // 3 VAR {X:Y = 3} = {X:5 }。 Y // 5 VAR:= {メッセージMSG = '何かが間違っていました'} } {。 MSG // "何かが間違っていた" VAR {X = 3} = {X:不定}; X // 3 VAR {X = 3} = {X:NULL ;} X // ヌル
- あなたは、変数が代入の解体のために宣言されている場合は、非常に注意してください。
// 書き込みエラー LET Xを、 {X} = {X :. 1 }; // にSyntaxError:上記のコード記述された構文エラーは、エラーになり
ますよう// JavaScriptエンジン{x}
構文エラーが発生することにより、コードブロックとして理解されます。
//括弧はJavaScriptを避けるために、行の先頭を書きません。この問題を解決するために、コードのブロックとして解釈します。 // の正しい表現 LETのX; ({X} = {X:} 1)。 - 解体割り当てモードの中で等号の左側を可能にする、任意の変数名を置かないでください。そのため、代入式を記述することは非常に奇妙です。
({} = [ 真、偽])。 ({} = 'ABC' )。 ({} = [])。
上記の式は無意味ですが、構文は合法ですが、それを実行することができます。
- 配列はオブジェクトの特殊な性質であるので、オブジェクトは、属性の配列を解体することができます
せARR = [1、2、3 ]。 {せ = - :最後最初、[1 arr.length] 0} ; ARR 最初// 1 最後// 3