ES 6 letとconstコマンド


ES 6 letとconstコマンド
阮一峰先生のES 6文章の中で、letとconst命令を詳しく紹介しました.
letコマンドlet は、ES 6によって追加された変数を宣言するために使用される.使用法はvarと似ていますが、letコマンドはコードブロック内でのみ有効です.
  • 基本的な使い方
    {
         
      let b = 10000;
      var c = 1000;
    }
    b //   :ReferenceError:a is not defined
    c // 1000 
    
  • サイクルにlet
  • を使用する.
    for(let i = 0; i < 5; i++){
         
      //segment
      //...
    }
    console.log(i);//ReferenceError:i is not defined
    for(var i = 0;i < 5; i++){
         
      //segment
      //...
    }
    console.log(i);//5
    
    letで定義されたiは循環体でのみ有効であり、varコマンドで定義されたiはグローバル変数である.
  • letには変数が存在しません.
  • //var       
    console.log(aaa);
    var aaa = 2;
    //   
    var aaa;
    console.log(aaa);
    aaa = 2;
    
    //let         
    console.log(bbb);//  ReferenceError
    let bbb = 2;
    
  • 一時性死区
  • ブロックレベルのスコープ内にletコマンドが存在する限り、宣言された変数は「バインディング」(binding)という領域になり、外部の影響を受けなくなる.
  • コードブロック内でletコマンドを使用して変数を宣言する前に、この変数はすべて利用できない
  • です.
    var a = 111;
    if (true){
         
      a = 222;//ReferenceError
      let a;
    }// let      tmp  ,     tmp “  ”。
    
  • 重複した声明は許されない.
    {
         
      let a = 10;//let      ,    
      var a = 100;
      
      let b = 100;//    ,      
      let b = 10;
    }
    
    ブロックレベルのスコープ とは、 という一つの によって包まれているものです.
    //  1:             
    {
         
      //segment1;
      //segment2;
      //segment3;
      //...
    }
    //  2:    for  
    //            ,let     a        
    for(let i = 0 ; i < 2 ; i++){
         
     	let a = 10;
      var b = 0;
    }
    console.log(a);//  
    console.log(b);//0
    
  • ブロックレベルのスコープは任意に入れ子できます.
    {
         
      {
         
        {
         
          {
         
            let c = 0;
          }
          console.log(c);//  
        }
      }
    }
    
    constコマンドconst は読み取り専用の定数を宣言しています.
  • いったん声明したら、定数の値は変更できない.
  • const PI = 3.1415926;
    console.log(PI);//3.1415926
    
    PI = 3;
    //TypeError: Assignment to constant variable.
    
  • が作成されると、初値
  • を与えなければなりません.
    const PI;
    //SyntaxError:Missing initializer in const declaration
    
  • は、let と同じである.宣言があるブロックレベルのスコープ内だけで有効である
  • .
    {
         
      const PI = 3.1415926;
    }
    console.log(PI);//Uncaught ReferenceError:PI is not defined
    
  • const アップグレードが存在しません.
  • console.log(PI);//ReferenceError
    const PI = 3.1415926;
    
    最上階のオブジェクトのプロパティ
    最上階のオブジェクトは、放浪器環境でwindow を指します.
  • 最上階のオブジェクトの属性割当値とグローバル変数の割当値
  • window.a = 1;
    console.log(a);//1
    a = 2;
    window.a //2
    
  • var およびfunction によって宣言されたグローバル変数は、依然として上位のオブジェクトの属性
  • である.
  • let const class によって宣言されたグローバル変数は、上位のオブジェクトの属性
  • ではない.
    以上はlet const の全部の内容です.もし間違いがあったら、直ちに指摘してください.ありがとうございます.