1、ES6可変方法を宣言する

VaRの問題の宣言的に1、ES5

  1)、同じスコープVaRの内部にある前部が上書きされるの背後に、変数宣言を繰り返すことができます

  2)変数varは変数を宣言するVARを使用する前に、問題を強化するためにされて存在するが、この変数を使用することです

2、VARの異なる特性を聞かせて

  1)文は繰り返すことはできませんしましょう

  2)letが存在感を高めるために、不変です

  ブロックレベルのスコープ不感帯3)一時的な存在(すなわち、面積が同じ名前を持つ変数に存在しないことができ、この領域が既にこの変数にバインドされています)

  括弧でない場合、ブロックレベルのスコープでES5では、次の例では、印刷を行います

IF偽の){
   VARの lagev = 'jkgba' ;   
} 
にconsole.log(lagev); //未定義

次のように:
VaRのlagev;
 IF偽の){ 
  lagev = 'jkgba' ;   
} 
にconsole.log(lagev); 

しかしlet文を使用した場合、ブロックレベルのスコープの存在は、唯一の有効範囲内でアクセスすることができます
IF(偽の){ 
  LET lagev = 'jkgba' ;   
} 
(lagev)にconsole.log; //与えられ、未定義

 

別の例は、forループであります

ためVAR i = 0; iは3 '; iは++ ){
     // ... 
} 
にconsole.log(I); // iはグローバル変数を宣言VARので、私は、3から印刷され、この場合、私が使用する同じサイクル毎時間


LET使用される場合は、ループを行うには、各ループ本体は、各サイクルは、Iの可変ブロックレベルのスコープを再宣言され、ブロックレベルの範囲であり、時間意志iおよび次結合ステートメントとループ電流の値がサイクル毎に,,すなわち、初期値
のため(LETは、i = 0; iは<3; iは++ ){ 
    document.addEventListener(「クリック」、関数( ){ 
        警告は、(i)であり;   // この場合は、私は0,1,2 
    })
} 

この問題は、使用ES5のvarが達成される場合は、閉鎖、保存、iの各値を使用する必要があります実際には、使用した後、そのパフォーマンスはVARのいくつかのより悪いかもしれましょう、達成するために閉鎖してもコンパイルしてみましょう
が、今ChromeのV8エンジンの性能は非常に強力であり、そして常に微調整されます

3、ES6は、文の定数を追加しました

  これは、代入文の後に変更し、することはできませんと同じ特性を聞かせて

  CONSTネジ= 10。

  = 2 ULIR; //この場合は、エラーの種類を説明します

  一般的には、モジュールプロジェクトを導入するために使用され、我々は変更する必要はありません

 

おすすめ

転載: www.cnblogs.com/gopark/p/11355054.html