var, let, const의 차이가 무엇인가요?

0

기술면접 - JS

목록 보기
8/18

var, let, const의 차이가 무엇인가요?

var, let, const는 JavaScript에서 변수를 선언하는 데 사용되는 키워드입니다. 이 세 가지 키워드는 몇 가지 중요한 차이점을 가지고 있습니다:

var, let, const의 차이점

1. 변수 범위 (Variable scope):

  • var: 함수 스코프(function scope) 를 가지고 있습니다. 즉, var로 선언된 변수는 선언된 함수 내에서만 접근할 수 있습니다. 함수 내에서 선언된 var 변수는 호이스팅(hoisting)에 영향을 받습니다.
  • letconst: 블록 스코프(block scope) 를 가지고 있습니다. 중괄호({})로 둘러싸인 블록 내에서만 접근할 수 있습니다. 함수 내부 뿐만 아니라 if문, for문 등에서도 블록 스코프를 형성합니다. letconst 변수는 블록 내에서 선언된 이후에만 사용할 수 있습니다. 호이스팅은 발생하지 않습니다.

2. 재할당 가능 여부 (Reassignment):

  • varlet: 재할당이 가능합니다. 즉, 변수에 다른 값을 할당할 수 있습니다.
  • const: 재할당이 불가능합니다. const로 선언된 변수는 초기에 할당된 값을 유지해야 합니다.

3. 선언과 초기화 (Declaration and initialization):

  • varlet: 선언과 초기화를 분리할 수 있습니다. 변수를 선언하고 나중에 값을 할당할 수 있습니다.
  • const: 반드시 선언과 동시에 초기화해야 합니다. const 변수는 재할당이 불가능하기 때문에 선언과 초기화를 분리할 수 없습니다.

4. 전역 객체 속성 (Global object property):

  • 전역에서 var로 선언된 변수는 전역 객체(window 객체 또는 global 객체)의 속성이 됩니다. 즉, var로 선언된 변수는 전역 스코프에서 접근할 수 있습니다.
  • letconst: 전역 객체의 속성이 아닙니다. 전역에서letconst로 선언된 변수는 전역 스코프에서 접근할 수 없습니다.

요약하자면, var는 함수 스코프를 가지며 재할당과 선언-초기화 분리가 가능합니다. let은 블록 스코프를 가지며 재할당이 가능하고 선언과 초기화를 분리할 수 있습니다. const는 블록 스코프를 가지며 재할당이 불가능하며 반드시 선언과 초기화가 동시에 이루어져야 합니다.

profile
지치지 않는 백엔드 개발자 김성주입니다 :)

0개의 댓글

관련 채용 정보