ECMA 6学習-変数宣言と配列オブジェクトの構成解除値

3939 ワード

変数宣言と配列オブジェクトの構成値は、本編集では主にlet constの文法使用、注意事項を学びます.および、行列とオブジェクトの構成を解除します.
let声明
作用:let作用は主に局所変数を定義することです.
使用文法:let hello=「hello word」
使用上の注意事項:
  • let宣言の変数は、名声のブロックレベルだけで機能します.
  • let変数は先に声明してから使用しなければなりません.そうでないと
  • にエラーが発生します.
  • let変数は一つのスコープ内で何度も声明できません.
  • letは、関数内で宣言した場合、パラメータとはなるべく同名でないようにします.
  • エラーの例:
        //1.let      
        function f(input) {
            let a = 100;
            if (input) {
                let b = a + 1;  //    
                return b;
            }
            return b;  //   , b     
        }
    
        //2.let           
        a++;
        let a;
    
        //3.            
        let y = 2;
        let y = 3;  
    
        var x = 1;
        let x = 2; 
    
        //4.        
    
        //  :
        function funA(x) {
            let x = 100;  //  ,x          
        }
    
        //  :
        function funB(codition,x) {
            if (codition) {
                let x = 100; //    ,x        
                return x;
            }
            return x;
        }
    
    const声明
    役割:const作用は主に1つの定数を定義します.
    使用文法:const PI=3.1415;
    文法を使用します.1.定数に直接値を付けるとエラーが発生します.2.定数はオブジェクトであれば、オブジェクト属性は再割り当てできます.3.定数の作用域はletと同じである.ステートメントのブロックレベルだけで有用です.定数は繰り返し定義できません.
    エラーの例:
        //1.      
        const PI = 3.1415;
        PI = 3;  //  ,      
        
        //2.          ,        
        const kitty = {
            name: "Aurora",
            numLives:9
        };
    
        //  
        kitty = {
            name: "Danielle",
            numLives:9
        };
    
        //  
        kitty.name = "Kitty";
        kitty.numLives--; 
    
        //3.     
        if (codition) {
            const  MAX = 5;
        }
        console.log(MAX) // MAX       
    
        //4.      
        var message = "Hello";
        let age = 25;
    
        //        
        const message = "Goodbye";
        const age = 26;
    
    割り当て値
    作用:構成値は、配列やオブジェクトなどの複雑なタイプのデータを、複数の独立した変数に分解します.
    使用文法:
  • 配列は、let[a,b,c]=[1,2,3]を構成する.
  • オブジェクトは、let{foo,bar}={foo:“aa”、bar:“bb”}を解凍する.
  • 使用上の注意事項:1.配列の解は順番に、オブジェクトの解は無関係な順序で属性名によって値を取ります.2.不成功の構文に対して、一番の値はundefined 3を賦与します.undefinedとnullを解凍するとエラーが発生します.4.構文化値はデフォルト値を指定することができます.5.解凍値はvar let constに適用されます.
    配列分解の使用例:
        //    
        var [first,second] = [1,2];
        first; //1
        second; //2
    
        //      
        var [foo,[[bar],baz]] = [1,[[2],3]];
        foo;  //1
        bar;  //2
        baz;  //3
    
        var [,,third] = ["foo","bar","baz"];
        third; //baz
    
        //  ...  
        var [head,...tail] = [1,2,3,4];
        head; //1;
        tail  //[2,3,4];
    
        //      undefined
        var [foo] = [];
        var [foo] = 1;
        var [foo] = 'Hello';
        var [foo] = false;
        var [foo] = NaN;
    
        //         
        const [foo] = undefined;
        const [foo] = null;
    
        //        
        var [foo = true] = [];
        foo; //true
    
    オブジェクトの構成例:
        //    
        let test = { x: 0, y: 10, width: 15, height: 20 };
        let { x, y, width, height } = test;
        console.log(x, y, width, height);  //  0,10,15,20
    
        //          ,    
        let { foo, bar } = { foo: 'aaa', bar: 'bbb'};
        foo //'aaa';
        bar //'bbb';
    
        let {bar,foo} = { foo: 'aaa', bar: 'bbb'};
        foo //'aaa';
        bar //'bar';
    
        //     ,   undefined
        let { baz , foo} = { foo: 'aaa', bar: 'bbb'};
        baz; //undefined  //     
        foo; //'aaa'
    
        //       ,           。
        let { foo: baz } = { foo: 'aaa', bar: 'bbb'};
        baz; //'aaa';
        foo; //   
    
        //      
        var o = {
            p: [
                "Hello",
                { y: "word" }
            ]
        };
    
        var { p: [x, { y }] } = o;
        x  //"Hello";
        y  //"word";
    
        //     
        var { x = 3 } = {};
        x //3
    
    構成値の具体的な使用点:
  • 交換変数値
  • は、関数から複数の値
  • を返す.
  • より便利な受信Jsonタイプパラメータオブジェクト
  • は、デフォルトパラメータ
  • を設定しやすいです.
  • より四角な例のエルゴードオブジェクト
  • モジュールのロードがより鮮明な
  • 本文は私個人のためにECMA 6のノートを勉強しています.内容とケースは本のために書き写すことが多いです.コードの正確性をテストしていません.