티스토리 뷰

Programming/Javascript

var, let, const의 차이

potato-robot 2024. 4. 12. 19:52
  1. var:
    • 함수 스코프를 가짐: 함수 내에서 선언된 변수는 함수 내에서만 유효함.
    • 호이스팅(hoisting): 변수 선언이 스코프의 맨 위로 옮겨짐.
    • 재선언 가능: 같은 변수를 여러 번 선언할 수 있음.
    • 키워드 생략 가능  
      • 사용 사례:
        • 과거의 JavaScript 코드에서 주로 사용됨.
        • 함수 스코프를 가지므로 함수 내 어디서든 접근 가능한 변수를 선언할 때 사용됨.
      • 장점:
        • 호이스팅에 의해 변수 선언이 스코프의 맨 위로 끌어올려짐.
        • 변수를 여러 번 선언할 수 있어도 오류가 발생하지 않음.
      • 단점:
        • 함수 스코프를 가지므로 블록 레벨 스코프를 만들 수 없음.
        • 값이 재할당될 수 있어서 예기치 못한 버그를 유발할 수 있음.
        • 긴 생명주기 
        • 중복 선언(변수에 예상치 않은 값이 들어있을 수 있음)
  2. let:
    • 블록 스코프를 가짐: 블록 {} 내에서만 유효함.
    • 호이스팅: 변수 선언은 호이스팅되지만 초기화는 호이스팅되지 않음.
    • 재선언 불가능: 같은 이름의 변수를 한 번만 선언할 수 있음.
    • 값의 재할당 가능: 변수의 값을 다시 할당할 수 있음.
      • 사용 사례:
        • 블록 스코프를 가지는 변수를 선언할 때 사용됨.
        • 값이 재할당될 수 있는 변수를 사용할 때 사용됨.
      • 장점:
        • 블록 스코프를 가지므로 블록 내에서만 유효한 변수를 생성할 수 있음.
        • 값이 재할당 가능하여 유연성을 가짐.
      • 단점:
        • 호이스팅에 의해 변수 선언은 스코프의 맨 위로 끌어올려짐.
        • 같은 이름의 변수를 다시 선언할 수 없음.
  3. const:
    • 블록 스코프를 가짐: 블록 {} 내에서만 유효함.
    • 호이스팅: 변수 선언은 호이스팅되지만 초기화는 호이스팅되지 않음.
    • 재선언 불가능: 같은 이름의 변수를 한 번만 선언할 수 있음.
    • 값의 재할당 불가능: 한 번 할당한 값은 변경할 수 없음.
      • 사용 사례:
        • 변하지 않는 상수를 선언할 때 사용됨.
        • 블록 스코프를 가지는 상수를 선언할 때 사용됨.
      • 장점:
        • 값의 재할당이 불가능하여 코드의 안정성을 높임.
        • 블록 스코프를 가지므로 블록 내에서만 유효한 상수를 생성할 수 있음.
      • 단점:
        • 한 번 선언한 값은 변경할 수 없기 때문에 유연성이 떨어짐.
        • 선언과 동시에 값을 할당해야 하므로 나중에 값을 할당할 수 없음.

언제 어떤 키워드를 사용해야 할까요?

  • 변수가 재할당되어야 하는 경우에는 let을 사용합니다.
  • 변수가 상수이며 재할당되지 않아야 하는 경우에는 const를 사용합니다.
  • 함수 스코프를 가지는 변수가 필요한 경우에는 var를 사용합니다. 하지만 ES6 이후에는 let과 const를 사용하는 것이 권장됩니다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함