JavaScript 'let' 대 'var' 대 'const'

JavaScript에서 변수는 다음 세 가지 방법을 사용하여 선언할 수 있습니다.
  • 보자
  • 상수.

  • 이 글에서는 변수를 생성하는 세 가지 방법의 차이점을 명시적으로 보여드리겠습니다.✨

    이 세 키워드는 모두 구문이 유사합니다. 그러나 다음 기준에서 차이가 있습니다.
    1. 범위
    2. 재선언
    3. 게양.

    범위 차이



    "var"- 함수 범위이므로 정의된 함수 내에서만 액세스할 수 있습니다.

    "let"및 "const"는 블록 범위이므로 정의된 블록 내에서 액세스할 수 있습니다.

    기능 범위 변수 정의:



    function myFunc()
    {
       var x = "X";
       let y = "Y";
       const z = "Z";
       console.log(x, y, z);  //OUTPUT: "X Y Z"
       {
          var a = "A"
          let b = "B"
          const c = "C"
       }
       console.log(a);  //OUTPUT: A
       console.log(b);  //OUTPUT: Uncaught ReferenceError: b is not defined
       console.log(c);  //OUTPUT: Uncaught ReferenceError: c is not defined
    
    }
    
    myFunc();
    

    NB: 변수 a는 var로 선언되었고 여전히 myFunc() 함수 내에 있기 때문에 여전히 정의됩니다.

    전역 변수 정의



    "var"는 전역 변수를 정의하는 데 사용할 수 있습니다.

    "let"및 "const"는 전역 변수를 정의할 수 없습니다.

       var x = "X";
       let y = "Y";
       const z = "Z";
    
       console.log(window.x);  //OUTPUT: A
       console.log(window.y);  //OUTPUT: Undefined
       console.log(window.z);  //OUTPUT: undefined
    
    


    재선언:



    "var"로 선언된 변수는 정의된 범위 내에서 다시 선언될 수 있습니다.

    그러나 "let"과 "const"의 경우에는 불가능합니다.

       var x = "A";
       var x = "B"
       console.log(x);  //OUTPUT: B, last declaration is printed.
    
       let y = "A";
       let y = "B"; // Uncaught SynthaxError
    
       const z = "A";
       const z = "B"; // Uncaught SynthaxError
    


    이 시점에서 'const'와 'let'은 거의 같습니다.
    그리고 네! 그들은. 한 가지 차이점을 제외하고.
    따라서,The value of variables defined by "let" can be changed after assigning some values.
    It is impossible to do so with "const". It's value is assigned one and is not mutable.

       var x = "A";
       x = "B"
       console.log(x);  //OUTPUT: B, last declaration is printed.
    
       const y = "A";
       const y = "B"; // Uncaught TypeError: invalid assignment to const y.
    


    게양 차이



    변수가 함수 끝에서 "var"로 선언되면(초기화되지 않음) JavaScript 런타임에 의해 해당 범위의 맨 위로 이동되므로 해당 변수가 사용되는 경우 런타임에서 오류가 발생하지 않습니다. 선언하기 전에.

    "let"및 "const"로 선언된 변수는 선언 후에만 액세스할 수 있습니다.

    function myFunc()
    {
    
       console.log(a);  //OUTPUT: undefined
       console.log(b);  //OUTPUT: Uncaught ReferenceError: b is not defined
       console.log(c);  //OUTPUT: Uncaught ReferenceError: c is not defined
    
       var a = "A"
       let b = "B"
       const c = "C"
    
       console.log(a);  //OUTPUT: A
       console.log(b);  //OUTPUT: B 
       console.log(c);  //OUTPUT: C 
    
    }
    
    myFunc();
    


    결론:


  • 함수 범위 또는 전역 범위 변수에 'var' 사용
  • 블록 범위 변수에 'let' 및 'const' 사용

  • NB: 애플리케이션의 어떤 부분에서도 값이 변경되지 않는 정의된 변수에만 'const'를 사용하십시오.

    나는 벤틸이다!
    이와 같은 더 많은 것을 계속 쓸 수 있도록 저를 지원할 수 있습니다.

    좋은 웹페이지 즐겨찾기