ES 6----入門(一)

3529 ワード

ES 6の新特性 
ECMAScript 6はECMAが205.06にリリースしたバージョンです.境界点として、現在はこの後のバージョンをES 6と呼びます.ES 6は多くの新しい文法を持ってきました.同時に類型の概念を追加しました.JavaScriptはプロジェクト化言語に向かって進んでいます.若いJavaScriptにとっていいのか悪いのかは分かりません.最初はライト級の脚本用語として全世界に広まったからです.
新しい元のタイプと変数の説明
1,smbol
ES 6の前に、JavaScriptは6種類のデータタイプをサポートすることを知っています.現在、ES 6には元のデータタイプが追加されています.smbolはユニークな値、すなわち各smbolタイプの値が異なります.これは私にもう一つの特殊な値を思い出しました.NaNさん、ちょっと考えてみますと、彼らは似ていますか?
 var sy = Symbol('test');
 var sy1 = Symbol('test');
 console.log(tepeof sy);//'symbol'
 sy == sy1;//false
 var sy2 = new Symbol('test');//error : Symbol is not a constructor
smbolデータタイプの値を作成するには、Symbol関数に文字列を渡す必要があります.特に、newキーワードを使ってそれを呼び出すことはできません.また、各smbolタイプの値はユニークであり、同じ文字列であっても伝えられています. 
2,letとconst
ES 6は、変数を説明する二つのキーワードを追加しました.letとconst.彼らが説明した変数は、letとconstのキーワードがあるコードブロック内でのみ機能し、すなわちletとconstのペアの大括弧{}内で機能し、ブロックレベルのスコープ(ES 6の前に関数スコープと大域作用領域のみ)とも呼ばれる.letとconstは変数がプリコンパイル中にアップグレードされないことを明らかにしています.(全体的に説明してもwindowの属性にはなりません.)また、繰り返し説明することはできません.このような変数を使うには、letとconstキーの後にのみ使用できます.
 {
     let a = 0;
     console.log(a);//0
 }
 console.log(a);//error a is not defined
constは一つの定数を申明するために用いられ、申明する時は必ず値を賦課しなければなりません.
実はconst変数が変更できないというのは不正確です.以下の例を見てください.
const obj = {
    name:'ren',
    age:12
};
obj = {};//error
obj.sex = male;
consol.log(obj);//{name:'ren',age:12;sex:'male'}
constは、元の値であれば、上記の説明は正確であり、もしconstが参照値であると説明したなら、より正確な言い方は、再割り当てされない変数であるべきである. 
3,分配値
デフォーカシングは、演算子に対する拡張値です.配列またはオブジェクトに対してモードマッチングを行い、変数を割り当てます.
let [a,b,c] = [1,2,3];
console.log(a,b,c);//1,2,3

let [a,b,c] = [1,,3];
console.log(a,b,c);//1,undefined,3

let [a,,b] = [1,2,3];
console.log(a,b);//1,3

let [a,..b] = [1,2,3];//...      ,                      b
console.log(a,b);//1,[2,3]
実際にすべてのエニュメレート・オブジェクトは、配列、文字列オブジェクト、およびES 6によって追加されたMapおよびSetタイプなどの構造的な割当値を使用することができる.
let obj = {name:'ren',age:12,sex:'male'};
let {name,age,sex} = obj;
console.log(name,age,sex);//'ren',12,'male';
二新しいオブジェクトと方法
1,MapとSet
Mapオブジェクトはキーペアを保存するために使用されます.どの値もJavaScriptでサポートされている値はキーまたは値として使用できます.これは相手と似ていますか?実はまだ違いがあります.
  • objectのキーは文字列またはES 6のsmbol値だけであり、Mapは任意の値であってもよい.
  • Mapオブジェクトにはsize属性があり、キーペアの数が格納されていますが、objectオブジェクトには類似の属性がありません.
  • let myMap = new Map([['name','ren'],['age',12]]);
    
    console.log(myMap);//{'name'=>'ren','age'=>12}
    
    myMap.set('sex','male');
    
    console.log(myMap);//{'name'=>'ren','age'=>12,'sex'=>'male'}
    
    myMap.get('name');//'ren'
    
    myMap.has('age');//true
    
    myMap.delete('age');//true
    
    myMap.has('age');//false
    
    myMap.get('age');//undefined
  • Mapコンストラクタは2次元配列を受信してMapオブジェクトを作成します.配列要素の0位はMapオブジェクトのkey、1位はMapオブジェクトのvalueを表します.
  • Mapオブジェクトはset方法を使用してデータを追加し、set方法は2つのパラメータを受信し、最初はkeyを表し、2番目はvalueを表す.get法を使ってデータを取得します.パラメータはオブジェクトのkeyです.
  • Mapオブジェクトはdelete方法を用いてデータを削除し、削除が必要なkeyを示すパラメータを受信する.
  • Mapオブジェクトは、has方法を使用して、ある属性がすでにあるかどうかを検出し、bollan値を返します.
  • Setオブジェクトは、Mapオブジェクトと同様であるが、キーパッドペアではなく、一意の値セットを記憶するために使用される.配列に似ていますが、各要素は一意です.
  • Setオブジェクトの一意性の特徴を利用して、配列の再除去を簡単に行うことができます.
    let mySet = new Set([1,2,3]);
    
    console.log(mySet);//{1,2,3}
    
    mySet.add(4);
    
    console.log(mySet);//{1,2,3,4}
    
    mySet.delete(1);//true
    
    mySet.has(1);//false