変数の解体
1.解体とは何ですか?
ES6は、特定のパターンに応じて、許容エキス値、変数代入の配列とオブジェクト解体(非構造)と呼ばれ、
2.解体アレイ割り当て
構文:
せて[A、B、C] = [1、2、3 ]。 console.log(A、B、C)。// 1 2 3
配列:配列の値は、対応する位置に、用語「パターンマッチング」に属している変数の値が、長い同一のパターンのように両側に等しく、左側の変数に対応する値が与えられます
- 故障の値の解体場合、変数が未定義に等しいです。
- 不完全解体:等号パターンの左側には、アレイの右側の一部のみが、解体がまだ成功した一致します
- 右辺が配列でない場合は、次の文句を言うだろう
- 解体は、割り当てデフォルトすることができます:のみ解体障害が厳しいなど(===)を有効にするには、デフォルト値を未定義
- デフォルト値は式である場合、この式は遅延評価で使用された場合、それだけで実行することができます
- デフォルト値は、他の変数の割り当てを分解するために参照することができますが、参照される変数が定義されている必要があります
3.オブジェクトの解体の割り当て
構文:
せて、{A、B} = { 'AAA'、B 'BBB' }。 console.log(a、b)は、// AAA BBB
注文:オブジェクト変数の値の解体は、成功を分解するためには、同じ名前の属性でなければならない変数の順序ではありません
変数と属性別の名前:
ましょう{:C} = { 'AAA'、B 'BBB' }。 console.log(C); // AAA
メカニズム:同じ名前のプロパティの最初の発見、その後、実際の割り当てに対応する変数に代入ではなく、前者よりも後者でした
エラー:同じ名前の変数
- letコマンドと定義で定義された変数のconstのES6規定は解体の割り当てが同じで、繰り返すことはできません
- あなたは2番目のコマンドは、重複する定義エラーを報告しませんすることはできませんが、コンパイラは、コードブロックのように、左中括弧を理解する場合は、コードブロックを割り当てることができません
- ソリューション:コードのブロックであるとみなすことはない表現に格下げ、括弧で式全体を置きます
// EG:同じ名前の属性と変数、溶液: LETのA; ({A} = {A:}。3); // 使用括弧、ダウングレード式 にconsole.log(A); // 3
解体の対象でもネストすることができ、双方が同じ前提のモデルでなければなりません:ネスト
OBJせ= { 最初:[ 'ハロー' 、 {のfirstChild: '世界' } ] }。 ましょう{最初:[X、{のfirstChild:Y}]} = OBJ。 console.log(X、Y)// ハローワールド
オブジェクトの解体は、実際には以下のモデルの簡易版であります
// Aは概略およびC、BおよびDは、変数であるれる { 'CCC':B:C:D = {A}: 'AAA'、C A LET ;} にconsole.log(B、D); // AAA CCC
4.文字列の分割代入
文字列を解体するとき、文字列は、クラスの配列に変換され
構文:
[A、B、C、D]せ= 'こんにちは' ; console.log(A、B、C、D)。// 地獄
配列の長さの文字列変換と呼ばれるクラスのプロパティがあり、この属性の解体に割り当てることができます
ましょう{長さlenを} =「こんにちは」。 console.log(LEN)。// 5
5.分割代入する数値とブール値
- オブジェクトの解体・プログラムを使用して
- 右手側は番号またはブール値である場合、左がオブジェクトである、またはブール値は、第1解体に、オブジェクトに変換します
- 解体の原則:エラーの解体がちょうど配列の右側になりますが、配列や文字列、解体の対象ではなく、右のターゲットに最初のターン上のオブジェクトではありませんし、その後解体します
- ヌルとは、オブジェクトに変換されていない未定義ので、ので、エラーの解体になります
@ のブール解体と値 :LET {TS = 123のtoString} ; ;にconsole.log(TS) // 二段階 // に1オブジェクトの値 console.dir(新しい新しいナンバー(2123 )); // 2.オブジェクトモデルの値は、左、見つけるためにプロトタイプオブジェクトへの背面上のパターンに対応しない場合、オブジェクトを解体オブジェクト にconsole.logを(TS === Number.prototype.toString); // trueに
6.解体割り当て機能
構文:
関数楽しい([X、Y]){ にconsole.log(X + Y)。 } 楽しい([ 1,2])。// 3
- 楽しい関数パラメータ配列で、着信コールは、着信インスタント実際のパラメータで、配列の楽しみである参加解体して、二つの変数は、XとYは、値が割り当てられます
- デストラクタは、デフォルト値を使用することができます
- 関数の引数はオブジェクトを解体することにより、X、Yの値を与える、オブジェクトであり、解体があれば、デフォルト値を使用することができません
7.解体の使用
可変交換の1)値
X = 1ましょう。 yはせ = 2 。 [X、Y] = [Y、X]。 console.log(X、Y)// 2 1
2)複数の機能から返された値:関数は一つの値だけを返すことができ、複数の値のみ解体方法で、アレイまたはオブジェクトに返される戻り値を返すようにすることができ、容易にこれらの値を削除することができ
3)伝達関数パラメータ
4)データ抽出JSON:解体特に有用な抽出JSON
5)機能デフォルトパラメータ:ES6機能は、デフォルト値にパラメータを可能に