ES 6の新しい特性を詳しく紹介します.

3164 ワード

一、var let constの違い
  • letとconstは、変数の昇格がないと宣言しています.この変数を使うには、変数の定義後に使う必要があります.
  • letとconstは変数を繰り返し宣言できません.繰り返し宣言するとエラーが発生します.
  • letとconstでグローバル宣言変数はwindowに属性を増加させません.
  • letとconstはコードブロックに現れ、コードブロック(字面量宣言オブジェクトを除く)をブロックレベルの作用領域にし、一時的なデッドタイム
  • が現れる.
    二、インポート/エクスポートモジュール(ファイル/コンポーネント)の作成
    import/export
    三、new set(配列デ重量)
    //     
            var arr = [1, 2, 1, 3, 4];
            var arr2 = [...new Set(arr)];
            console.log(arr2) // [1,2,3,4]
            var arr3 = Array.from(new Set(arr))
            console.log(arr3); // [1,2,3,4]
            //      
            var str = [...new Set('ababbc')].join('')
            console.log(str); // abc
    
    四、Symbol(一意の値)
    var age = Symbol();
            var obj1 = {
                [age]: 18,
                name: "wangcai"
            }
            console.log(obj1[age]); // 18
    
    五、…ary(展開演算子、残りの演算子)
            var ary = [1, 2, 3]
            console.log(...ary); // 1 2 3
    
            let a = [1, 2, 3];
            let [b, ...c] = a;
            console.log(b) // 1
            console.log(c) // [2,3]
    
    六、{}テンプレート文字列
    var hello = 'good day'
            var world = `please look "${hello}", please enjoy it`
            console.info(world) // please look "good day", please enjoy it
    
    七、分配価値
    //---------       
            let arr5 = [0, 1, 2]
            let [e, f, g] = arr5
            console.log(e) // 0
            console.log(f) // 1
            console.log(g) // 2
    
            //---------       
            let { name, age2 } = { name: "lht", age2: 22 }
            console.log(name) // 'lht'
            console.log(age2) // 22
    
    八、for ofサイクル
    九、()=>{}矢印関数
    矢印関数のthisとは、定義時に存在するオブジェクトを指し、矢印関数の中にargmentsオブジェクトがありません.
    十、配列新規方法
    flat:    ,        
    filter :           
    findIndex :             
    every :            true
    some :             true
    
    十一、対象新規方法
    Object.assign()は対象の合併に使います.
    const target = { a: 1 };
    const source1 = { b: 2 };
    const source2 = { c: 3 };
    Object.assign(target, source1, source2);
    target // {a:1, b:2, c:3}
    
    Object.values()は、列挙可能な属性の値を返します.
     var obj = {10: 'a',1: 'b', 2: 'c'};
     console.log(Object.values(obj)); // ['b', 'c', 'a']
    
    Object.keys()は、オブジェクトのエニュメレート・属性と方法を含む配列注を返します.入力されたものが文字列または配列であれば、インデックス値を返します.
    var obj = {'name': 'xiaoming', 'age': 18};
    console.log(Object.keys(obj)); // ["name","age"]
    
    Object.create()作成対象
    // new Object()     
    var a = {  rep : 'apple' }
    var b = new Object(a)
    console.log(b) // {rep: "apple"}
    console.log(b.__proto__) // {}
    console.log(b.rep) // {rep: "apple"}
    
    // Object.create()     
    var a = { rep: 'apple' }
    var b = Object.create(a)
    console.log(b)  // {}
    console.log(b.__proto__) // {rep: "apple"}
    console.log(b.rep) // {rep: "apple"}
    
    注:new Object()は、構造関数によりオブジェクトを作成し、追加された属性は自身のインスタンスである.Object.create()メソッドで作成したオブジェクトは、属性がプロトタイプの下にあり、直接b.repにアクセスすることもできます.この値はb自身ではなく、プロトタイプのプロトを通じてbにアクセスする値です.