ES6変数と脱構築(B)

可変使用ステートメント [ ノード環境で試験される試験試料は、ブラウザ環境では、コードES6と完全に互換性がありません ]
ES6 {}パッケージ{}の内容が呼び出され、コードのどの部分を含めるために使用することができるコードブロックローカルスコープ

letキーワード  [ 変数宣言 ]
特徴:
[1ブロックレベルのスコープを局所的に文のブロックに ]
2 [変数宣言が改善しない変数が宣言されていない前に、変数が使用できない ]
3。 [一時的なデッドゾーン変数宣言エリアの前に ]
4.文は[繰り返さないで同じ変数宣言を繰り返すことはできませんコードの同じブロックを }

constキーワードを     [ 定数宣言(一般的に一定の大文字を表す)]
:特性 [ 適合宣言を聞かせて中を特性変数に次の二つの特性を追加 ]
1、[初期化宣言文は同じ時間が割り当てられなければならない ]
2、及び編集できません

2つの解体
1、解体アレイ割り当て [ 左、右の値で一致が去ったとき、値が未定義である、可変である ]
全く解体ない [ 正確データ一致について ]
例えば:

    [A、B、C] = [1,2,3]ましょう。


不完全な解体 [ 異なるからデータについて ]
aは、データのみ、値が定義されていない変数宣言よりも多く残さ
bは、余分なデータエントリの右側は考慮せずに無視される
例えば:

    [、[B]、D] = [1、[2,3]、4]ましょう。     // A = 1。B = 2。D = 4


解体セット { 拡張オペレータ用い... ]
A、...テール電流は、すべての組成値右不一致の配列返し
例えば:

    LET [頭部、尾...] = [1,2 ,. 3 ,. 4。]; // ヘッド= 1;尾= 2 ,. 3 ,. 4] 
    //が蓄積動作 
    のlet SUM = 0 ;
     機能テスト(... ARR){
         // 拡張オペレータは、アレイの形式で受信RESTパラメータパラメータは------>オブジェクト引数配列パラメータを使用することは推奨されていないパラメータ返される
        // 、ARR = [1,2,3,4 5] 
        のための(I = 0 LET;私は<arr.length; I ++は){ 
            SUM + = ARR [I]; 
        } 
    } 
    
    テスト( 1,2,3,4,5)。


デフォルト値 [ 未定義の値に正確に等しいマッチし、発効の既定値 ]
例えば:

    せ、[X、Y = 'B'] = [ '']。   // X = ''、Y = 'B'


デフォルト値は、関数である
注:最初に一致した値が正確に等しい不定、デフォルトの代入演算子の値であれば値が、一致するか否かを判定し、そうでない場合は、デフォルトの割り当て操作を行わない
例:

    機能テスト(){ 
        にconsole.log( 'テスト' )。
        リターン 2 ; 
    } 
    せ[X =試験()] = []; 
    console.log(X)。        // テスト2


    
図2に示すように、オブジェクト割当解体 [変数プロパティ名に対応する権利が存在しない左場合、オブジェクト属性値が定義されていない、すなわち、オブジェクト宣言されていない属性は未定義である]
元の構造の割り当てのオブジェクト [ 変数の名前を変更した後、変数の最終宣言変数の名前の変更 ]
例えば:

    = {名:「NZC」、年齢:18は、{:がmyName、年齢myAge LET名前} }
     // 上記のコードは、同じ名前のオブジェクトプロパティの取得した権利と一致するコード名{下記左側に類似しているのと改名の名前に割り当てられた属性値をがmyName = 'NZCを'せるがmyName変数==」] 
    がmyName = 'NZC'せ
    LETのmyAge = 18です。

   
注文していない、変数が正しい値にのみ、同じ名前のプロパティの後に取られなければならないオブジェクトのプロパティの [ 同じ名前を変更するには、省略することができます ]を
例:

    {LETに名前を付ける:名前、年齢:年齢} = {名: 'NZC'、年齢:18である}
     // と略記 
    LET {名前、年齢} = {名: 'NZC'、年齢18である}
     // 以下のコードと同様に 
    名前=レッツNZC " ; 
    letの年齢 = 18です。


ネストされたオブジェクトの解体の
例:

    人PARAMは= {LET:[ 'NZC'、{年齢:18である}]}; 
    LET {PARAM:[名前、年齢{}]} =人; // 名前= 'NZC'年齢= 18である
    // PARAM以下類推タグは、[名前、{年齢}]のように名前が変更され、それ自体を宣言しない。PARAM変数が存在しない、すなわち 
    {PARAM:[名前、{せ年齢}]} = {PARAM:[ 'NZC'、{年齢:18} ]}

   
デフォルト値有効な条件のデフォルトは未定義正確に等しいオブジェクトのプロパティ値
EG:

    // 名前= 'nzchs' - >変数名のデフォルト値;年齢:myAge = 21-> myAgeデフォルト[年齢リネームmyAgeは、デフォルト値が与え} 
    {NAME = 'nzchs'せ、年齢:myAge = 21} = 名前は、{: 'NZC'、年齢18である} 
    LET {名前 = 'nzchs'、年齢:21であるmyAge =} = {名: 'NZC'}  


    
3、解体列割当
解体は、文字列がオブジェクトの類似の配列に変換されます。
例えば:

    [A、B、C] = 'こんにちは'ましょう。// A = H; B = E; C = L

lengthプロパティの解体
例えば:

    {長さLET:LENを} =「ハロー」; // 。LEN =長さ5 [オブジェクトプロパティ配列の正しいクラスと一致する文字列に変換され、その値が改名変数LENに割り当てられています]

 


図4は、割り当てを構造化代入数値とブール値は、
解体するとき、右手側は、数値およびブール値である場合、対応する第一の基準データの基本型オブジェクトに変換されます
例:

    {LETをTOSTRING:0009} = 123; // 関数STR1 === Number.prototype.toStringがtrueを返す 
    LET {のtoString:STR2は} =  ; // この関数は真を返しSTR2 === Boolean.prototype.toString



図5は、関数のパラメータの割り当ては解体
分割代入を渡して、基本的な配列パラメータ
例を:

    関数([X、Y]){追加戻り X + 、Y}を
    ([追加 2,1]);    // 関数は値3を追加し返します


デフォルト値を持つ関数のパラメータは、
例えば:

    機能テスト({X = 0、Y = 0 }){
         戻り[X、Y]; 
    } 
    // 関数呼び出し 
    ({X :. 3、Y :. 8})試験; // 戻り値[3 ,. 8] 
    試験({X :. 3}); // 戻り値[3,0] 
    試験({}); // 戻り値は[0、0] 
    テスト(); // ''のX 'プロパティをdestructureできませんエラー未定義を「または」NULL」

   
第三に、解体の一般的な用途
1、変数の交換価値
例:

    X = 1ましょう
    yはせ = 2 
    [X、Y] = [Y、X]。  
    console.log(X、Y)// 2 1    

図2に示すように、関数パラメータの割り当て:
EG:

    // [A = 0、B = 1] = [1] A. = 1、B = 1つの。
    機能テスト([A = 0、B = 1。]){
         戻り A + B; 
    } 
    テスト([。1]);   // 2の値を返します

3、データオブジェクトを抽出
例:

    ID {OBJ = LET:42は、ある状態: "OK"データ:[867、5309 ]}; 
    LET {ID、ステータス、データ:数} = OBJ;   // に対応する変数を定義

図4に示すように、入力モジュールの指定方法

    CONST {SourceMapConsumer、SourceNode} =( "ソースマップ")を必要とします。


図5に示すように、マップ構造を横切ります

    VaRのマップ= 新しい地図(); 
    map.set( '名前'、 'NZC' ); 
    map.set( '年齢'、18 );
    {(マップの[キー値]せ)
        はconsole.logは(キー + +値「です」)。    // 名前はNZC年齢は18です 
    }

 

おすすめ

転載: www.cnblogs.com/nzcblogs/p/11348883.html