var, let, const


var, let, const


JavaScriptの変数と定数宣言キーワード.

var


->初期JavaScriptは、var万個の変数宣言のみを使用します.

var特性

  • 関数レベルスキャンまたはグローバルスキャン
  • var a = "a";
    
    function example() {
      var b = "b";
      console.log(a); // a 전역변수. 출력가능.
    
      if (true) {
        var c = "c";
        console.log(b); // b - 해당 함수 내 선언한 변수. 출력 가능.
      }
      console.log(c); // c - 해당 함수 내 선언한 변수. 출력 가능.
    }
    example();
  • varは変数の繰り返し宣言
  • である.
    var name = "kim";
    console.log(name); // kim
    
    var name = "lee";
    console.log(name); //lee
  • 再割当可能な値
  • var a = 10; 
    a = 20; 
    console.log(a); // 20
  • 宣言前に使用可能な
  • function sayHi() {
      phrase = "Hello";
    
      alert(phrase);
      var phrase;
    }
    sayHi();

    しかしvarには多くの問題があるので使用しません。

  • varのほとんどの特徴は、副作用をもたらす.
  • の初期には、柔軟性を使用して計画を作成しましたが、ある程度、このような規模のプロジェクトを行うと、宣言されていない値が割り当てられ、リスクが大きい可能性があります.
  • let


    ->ES 6(ES 2015)letとconstが追加されました.

    letフィーチャー

  • 繰り返し宣言不可
  • let a = 10; 
    let a = 20; // SyntaxError: Identifier 'a' has already been declared
  • の値は、
  • を再割り当て可能である.
    let b = 111; 
    b = 222; 
    console.log(b); // 222
  • letは、文やfor文などの関数内部のコードブロックです.で宣言された変数も領域変数とみなされます.블럭 레벨 스코프(Block Level Scope)
  • let a = "a";
    
    function example() {
      let b = "b";
      console.log(a); // a 전역변수. 출력 가능
    
      if (true) {
        let c = "c";
        console.log(b); // b 해당 함수 내 선언한 변수. 출력 가능
      }
      console.log(c); // ReferenceError: c is not defined
    }
    example();

    const


    ->一度に値を宣言しても絶対に変わりません.(定数)

    constフィーチャー

  • 繰り返し宣言不可
  • const b = 10; 
    const b = 20; // SyntaxError: Identifier 'b' has already been declared
  • 値は「再割り当て」できません
  • const c = 111; 
    c = 222; // TypeError: Assignment to constant variable.
  • constは、文やfor文などの関数内部のコードブロックです.で宣言された変数も領域変数とみなされます.블럭 레벨 스코프(Block Level Scope)
  • 整理する

  • 値が変更可能かどうか
  • varおよびletは、値宣言後に値を変更できますが、constは作成時に宣言の初期値を変更できません.
  • 関数スキャンとブロックスキャン
  • varは関数スキャンを有し、letおよびcont変数はブロックスキャンを有する.
  • 繰り返し宣言はvarのみです.
  • リファレンス

  • 夢のコード
  • https://ko.javascript.info/var
  • https://wonyoung2257.tistory.com/27
  • https://curryyou.tistory.com/192