var, let, const

브리셀·2021년 8월 2일
0

JavaScript

목록 보기
1/8

다른 두 키워드와 차이가 있는 부분에 강조를 하였습니다.

var

  • 가장 기본적인 변수 선언 키워드
  • 기존에 선언된 전역변수와 같은 이름의 지역변수를 선언할 수 있음
    • 이 때 호출 우선도는 지역변수가 더 높음
  • 함수 스코프
  • 초기화 없이 선언 가능
  • 선언 전에 사용 가능
    • 해당 스코프에서 선언을 하기는 해야 함
    • 호이스팅: 변수의 선언이 스코프의 상단으로 '끌어올려지는' 것
      • hoist: 끌어올리다
      • 실제로는 컴파일 단계에서 메모리에 저장되는 것이지만 스코프 상단에 선언한 것과 비슷한 결과이기 때문에, 이미지 상 그렇게 부르는 듯
      • 함수에서도 호이스팅이 일어나는데, 본 포스트의 주제와는 거리가 있으므로 자세한 내용은 링크로 대체

let

  • 개선된(?) 변수 선언 키워드
  • 스코프가 달라도 동명의 변수를 선언할 수 없음
  • 블록 스코프
  • 초기화 없이 선언 가능
  • 선언 전에 사용 불가

const

  • 상수 선언 키워드
    • 객체 내 속성(property)의 변화는 막을 수 없음
    • 이를 막기 위해서는 Object.freeze() 메소드를 활용할 수 있으나, 이 경우에는 객체 내 객체의 속성 변화를 막을 수 없음 ("얕은 동결")
  • 스코프가 달라도 동명의 변수를 선언할 수 없음
  • 블록 스코프
  • 선언시 초기화 필요
  • 선언 전에 사용 불가

참고한 곳

profile
풀스택도 프론트부터

0개의 댓글