JavaScript에서 'var', 'let'을 만들거나 'const'를 유지합니다.

var, let 및 const의 차이점



JavaScript에서 변수는 다음과 같은 세 가지 주요 키워드/방법을 사용하여 할당됩니다.
  • 보자

  • const.

  • 그러나 JavaScript ES6의 도입으로 var는 변수를 선언하는 오래된 방법이 되었습니다.

    변수 선언을 위한 사실상의 방법이 된 let 및 const와 같은 많은 기능이 도입되었습니다.

    참고 변수는 컴퓨터 메모리, 즉 데이터를 저장하는 데 사용되는 컨테이너에 공간을 차지하는 값입니다.

    JavaScript에서 var, let 및 const에는 차이가 있습니다. 이러한 모든 키워드 간의 이러한 차이점은 다음 개념을 기반으로 합니다.

    범위



    이것은 변수에 액세스하는 방식을 나타냅니다. 즉, 변수의 액세스 가능성을 결정하는 방법입니다.
    JavaScript에는 세 가지 범위가 있습니다.
  • 전역 범위
  • 기능 범위
  • 블록 범위

  • 글로벌 범위



    변수가 펑션 블록 외부에서 선언되어 프로그램 내 어디에서나 액세스할 수 있는 경우를 말합니다.

    var age = 19;
    let game = 'fifa';
    const pie = 3.14;
    
    function getAll(){
        console.log(age);
        console.log(game);
        console.log(pie);
    }
    console.log(age);
    console.log(game);
    console.log(pie);
    getAll();
    


    참고: var, let 또는 const는 프로그램 어디에서나 액세스할 수 있는 전역 변수를 선언하는 데 사용됩니다.

    기능 범위



    변수가 함수 범위 내에서 선언되고 함수 내에서만 액세스할 수 있는 경우를 말합니다. 로컬 범위라고도 합니다.

    function getAge(){
        var name = "John";
        console.log(name);
    }
    // console.log(name); // ReferenceError: name is not defined
    getAge();
    


    참고: var만 함수 범위입니다. 즉, 함수 블록에서 var에 의해 선언된 변수는 함수 자체에서만 액세스할 수 있으며 함수 외부에서는 액세스할 수 없습니다. 즉, ReferenceError를 발생시킵니다.

    블록 범위



    변수가 블록 또는 중괄호 안에 선언되어 외부에서 액세스할 수 없는 경우를 말합니다. 블록은 if, for, while 등과 같은 함수 또는 제어 구조일 수 있습니다.

    function gaming(){
        let name = "John";
        const age = 19;
        console.log(name);
        console.log(age);
    }
    // console.log(name); // ReferenceError: name is not defined
    // console.log(age); // ReferenceError: name is not defined
    
    if(true){
        let name = "Paul";
        console.log(name);
    }
    // console.log(name);
    gaming();
    


    참고: let 및 const는 모두 블록 범위입니다. 즉, 블록에서 let 또는 const로 선언된 변수는 블록 내에서만 액세스할 수 있으며 블록 외부에서는 액세스할 수 없습니다. 즉, ReferenceError가 발생합니다.

    게양



    코드 실행 전에 선언을 범위의 맨 위로 이동하는 동작을 말합니다. 변수와 함수가 선언되기 전에 사용되도록 허용하는 경향입니다. 즉, 변수/함수 선언은 코드 블록에서 선언된 위치에 관계없이 실행 전에 코드 블록 시작 부분으로 이동됩니다.
  • var는 게양을 허용합니다.

  • name = "John";
    console.log(goal);
    var name;
    


  • let 및 const는 호이스팅을 허용하지 않습니다.

  • goal = "business";
    console.log(goal);
    let goal;
    



    goal = "business";
    console.log(goal);
    const goal;
    


    선언 및 접근성



    var를 사용하여 선언한 변수는 초기화하지 않고 선언할 수 있습니다.

    var age;
    console.log(age); // undefined
    


    참고: var를 사용하여 선언된 변수는 초기화 없이 액세스할 수 있으며 undefined를 반환합니다.

    또한 let을 사용하는 경우 초기화 없이 선언할 수 있습니다.

    let age;
    console.log(age); // undefined
    


    참고: let을 사용하여 선언된 변수는 초기화 없이는 액세스할 수 없으며 오류를 반환합니다.

    그리고 const를 사용하는 것은 초기화 없이 선언할 수 없습니다.

    const pie;
    console.log(pie); // SyntaxError: Missing initializer in const declaration
    


    참고: const로 선언한 변수는 초기화 없이 선언할 수 없으므로 초기화 없이는 액세스할 수 없습니다.

    재선언



    var를 사용하여 선언한 변수는 다시 선언하고 업데이트할 수 있습니다.

    var age = 19;
    var age = 20;
    age = 30;
    


    let을 사용하는 경우 재선언할 수 없지만 업데이트할 수 있습니다.

    let game = 'fifa';
    game = 'pes';
    


    그리고 const는 다시 선언하거나 업데이트할 수 없습니다.

    const pie = 3.14;
    const pie = 2.15; // SyntaxError: Identifier 'pie' has already been declared
    pie = 10; // TypeError: Assignment to constant variable.
    


    요약





    Image credit: GeeksforGeeks

    좋은 웹페이지 즐겨찾기