Javascript에서 var, let 및 const 이해

변수는 데이터를 저장하는 컨테이너 역할을 하므로 모든 프로그래밍 언어에서 중요한 역할을 합니다.
변수는 모든 작업을 수행하는 데 거의 필요합니다.

Javascript는 변수를 선언하는 세 가지 방법, 즉 다음을 제공합니다.
1) 변수
2) 하자
3) 상수

각 변수 유형과 사용 사례를 살펴보겠습니다.

바르:



var 선언은 ES6이 등장하기 전에 우세했습니다.

var greetings = 'Hello Javascript'


변수를 선언하는 가장 쉬운 방법 중 하나입니다.
var 변수는 다시 선언하고 다시 초기화할 수 있습니다.

그러나 var를 사용하여 선언된 변수에는 문제가 있으며 이로 인해 새로운 변수 선언 방식이 생겨났습니다.

var의 범위:



범위는 본질적으로 변수에 액세스할 수 있는 위치를 의미합니다. var로 선언된 변수는 전역 범위 또는 함수/로컬 범위입니다.

var globalVar = 'Welcome to my blog';

function readBlog() {
  var localVar = 'You are reading Crazy Js';
}

console.log(globalVar); // 'Welcome to my blog'
console.log(localVar); // Reference Error: localVar is not defined


여기에서 변수 globalVar는 함수 내부에 상주하지 않고 전역 범위 변수이므로 프로그램 전체에서 어디에서나 액세스할 수 있습니다.

반면 함수 내부에서 선언된 localVar는 외부에서 액세스할 수 없습니다.

var 관련 문제


  • var를 사용하여 변수를 다시 선언하고 다시 초기화할 수 있습니다.

  • var를 사용하여 변수를 선언하면 다시 선언하고 값을 수정할 수 있습니다.

    var greetings = 'Hello World!';
    var greetings = 'Hello Javascript';
    


    동일한 이름을 가진 변수가 동일한 범위에서 다시 선언되기 때문에 혼란스럽습니다.
  • var에서 호이스팅:

  • var로 선언된 변수는 선언되기 전에 접근할 수 있는데, 이는 Hoisting이라는 특수 기능 때문에 가능합니다.

    console.log(greetings); // undefined
    var greetings = 'Hello World!';
    


  • var가 선언된 블록 외부에 존재합니다.

  • var로 선언된 변수는 함수 내부에 정의되지 않은 경우 정의된 블록 외부에 존재합니다.

    if (true) {
    var a = 'Hello'
    }
    
    console.log(a);
    


    허락하다:



    let은 이제 선호되는 변수 선언이며 var 선언에 대한 개선 사항으로 제공됩니다.

    let greetings = 'Hello Javascript'
    


    허용 범위:



    let으로 선언된 변수는 블록 범위입니다.

    블록은 {}에 상주하는 코드 덩어리입니다.
    블록 내부에 정의된 let 변수는 블록 외부에서 액세스할 수 없습니다.

    function greetings() {
        let greetings = 'Hello Javascript'
    }
    
    console.log(greetings); // Reference error
    


    var에 대한 개선 사항:
  • let 변수를 업데이트할 수 있지만 다시 선언할 수는 없습니다.

  • let greeting = 'hello'
    greeting = 'Hi, Instead'
    
    console.log(greeting); // 'Hi, Instead'
    


    오류가 발생합니다.

    let greeting = 'Hello';
    let greeting = 'Hey'; // this will result in an error
    


    그러나 동일한 변수가 다른 범위에 정의되어 있으면 오류가 발생하지 않습니다.
  • 렛 게양
    let 변수도 호이스팅되지만 var와 달리 let은 정의되지 않은 상태로 초기화되지 않으며 일부 값이 let 변수에 할당될 때까지 액세스할 수 없습니다.

  • console.log(greeting); // results in a reference error.
    let greeting = 'Hello';
    


    상수:



    const 변수는 변수에 상수 값을 할당해야 할 때 사용됩니다. const 변수는 선언되자마자 값을 할당해야 합니다.

    const greeting = 'Hello';
    console.log(greeting); //Hello
    


    const의 범위:



    const 변수는 let과 유사한 블록 범위입니다.

    function greetings() {
        const greetings = 'Hello Javascript'
    }
    
    console.log(greetings); // Reference error
    


    var에 대한 개선 사항:
  • const 변수를 업데이트하거나 다시 선언할 수 없습니다.

  • const greeting = 'hello'
    greeting = 'Hi, Instead' // syntax error
    


  • const 호이스팅
    const 변수도 호이스팅되지만 var와 달리 const는 정의되지 않은 상태로 초기화되지 않으며 일부 값이 const 변수에 할당될 때까지 액세스할 수 없습니다.

  • console.log(greeting); // results in a reference error.
    const greeting = 'Hello';
    


    질문이나 제안이 있으십니까? 알려줘요
    읽어 주셔서 감사합니다 :)

    좋은 웹페이지 즐겨찾기