[JS]var、const、let差異


1.JavaScriptにおける変数宣言方式var、let、constの違いを理解する.
1-1. var(変数を再宣言可能、変数を再割り当て可能)
 var i = 'javascript'
 console.log(i); //javascript

 var i = 'variable'
 console.log(i); //variable
    
 i = 'Assignment'
 console.log(i); //Assignment
まずvarは変数を再宣言し、変数を再割り当てすることができる.
すなわち,柔軟な変数宣言が便利に使用できる点が利点であるが,既存の宣言の変数の存在を忘れ,重複宣言のリスクとどこで使用するかを把握することが困難であるという欠点がある.これらの欠点のため、できるだけ使用を避けます.
したがって,ES 6以降,これを補うために増加した変数宣言方式はletとconstである.
1-2. let(変数を再宣言できません.変数を再割り当てできます)
   let i = 'javascript'
   console.log(i); //javascript

   let i = 'variable'
   console.log(i); // cannot redeclare block-scoped variable
    
   i = 'Assignment'
   console.log(i); //Assignment
varとは異なり、letは再宣言時に変数を再宣言できないエラーを出力します.
ただし、次のように再割り当て時に正常に出力されることを確保できます.
   i = 'Assignment'
   console.log(i); //Assignment
1-3. cont(変数を再宣言できず、変数を再割り当てできません)
   const i = 'javascript'
   console.log(i); //javascript

   const i = 'variable'
   console.log(i);  // cannot redeclare block-scoped variable
   
   i = 'Assignment'
   console.log(i); //cannot assign to 'i' because it is a constant
constはvarとは逆に変数の再宣言や再割り当ては不可能である.
constは定数なので、一度だけ宣言したり、値を変更したりすることはできません.
2.護衛とは何ですか.
変換とは、コードが実行される前に、変数宣言/関数宣言がコードの最上位に昇格したように見えることを意味する.
  • 号の位置決めを理解する前に、変数がどのように生成されたかを理解する必要があります.
  • 2~1変数を作成する3つのステップ
    1.宣言手順:実行コンテキストの変数オブジェクト(Variable Object)に変数を登録します.この変数オブジェクトはscope参照のオブジェクトになります.
    2.初期化手順:メモリに変数オブジェクト(Variable Object)に登録されている変数があることを確認します.この段階では、変数はundefinedに初期化されます.
    3.割当て手順:未定義の初期化変数に実績値を割り当てます.
    2-2変数の加速
    1. var
    console.log(i); //undefined
    var i = 1;
    このコードはundefinedを返し、エラーは発生しません.これはJavaScriptが次のようにコードを解釈するためです.
    var i = 1;
    console.log(i); //undefined
    2. let/const
    varと同じ方法でコードを記述すると、
    console.log(i); //ReferenceError: let is not defined
    let i = 1;
    
    console.log(i); //ReferenceError: const is not defined
    const i = 2; 
    エラーが発生します.これは、let、constキーワードとして宣言された変数がハイライトされ、宣言フェーズが実装されるが、初期化フェーズは実際のlet、constが使用するコードに到達したときに完了するからである.初期化フェーズの前に変数にアクセスしようとすると、エラーが発生します.
    varにエラーが発生しなかったのは、宣言フェーズと初期化フェーズが同時に行われたためです.
    3.では、いつ使えばいいのでしょうか.
  • var:letおよびconstはES 6のキーワードであるため、以前はES 6がサポートされていなかったブラウザの問題を解決する際に使用することが望ましい.
  • let:値の宣言後に変更する場合に使用することが望ましい.
  • const:再割り当てを行わずに一定の定数値を使用することが望ましい.
  • サマリ
  • var(再宣言可能、再割り当て可能)
  • let(再宣言不可、再割り当て可能)
  • const(再宣言不可、再割り当て不可)
  • 号ダンプは、コード実行前の変数宣言/関数宣言であり、この現象はスキャンの最上位
  • に昇格したようだ.
  • 変数の3段階プロセス-
    宣言フェーズ->初期化フェーズ->割当フェーズ
  • var、let、constはいずれもよく見られている.
  • 一般的には
  • varは使用せず、letとconstを使用します.