본문 바로가기
웹개발/front-end

[자바스크립트]변수선언 var과 let의 차이

by 지구별 여행자 임탱 2024. 3. 25.
728x90

자바스크립트에서 변수를 선언하는 방법에는 var, let, const가 있습니다.

이중 var와 let은 유사해 보이나 실제로는 몇가지 차이점이 있습니다.

 

변수의 스코프 (Scope)
  * var로 선언된 변수는 함수 스코프(function scope)를 가집니다. 즉, var로 선언된 변수는 선언된 함수 내에서만 지역 변수로 작동하고, 함수 외부에서 선언된 경우 전역 변수가 됩니다.
  * let으로 선언된 변수는 블록 스코프(block scope)를 가집니다. 이는 let으로 선언된 변수가 선언된 블록(중괄호 {}로 둘러싸인 영역) 내에서만 유효하다는 것을 의미합니다.


호이스팅 (Hoisting)
  * var로 선언된 변수는 호이스팅되어 선언부가 해당 스코프의 최상단으로 끌어올려집니다. 단, 할당은 끌어올려지지 않습니다.
  * let으로 선언된 변수도 호이스팅은 되지만, var와 달리 초기화되지 않은 상태로 끌어올려집니다. 이는 변수를 선언하기 전에 접근하려고 하면 참조 에러(ReferenceError)가 발생한다는 것을 의미합니다. 


재선언 (Redeclaration)
  * var로 선언된 변수는 같은 스코프 내에서 재선언이 가능합니다. 이는 예기치 않은 버그를 발생시킬 수 있습니다.
  * let으로 선언된 변수는 같은 스코프 내에서 재선언할 수 없습니다. 이미 선언된 변수명으로 다시 선언하려고 하면 문법 에러(SyntaxError)가 발생합니다. 

 

현재 자바스크립트에서는 var보다는 let const의 사용을 권장하고 있습니다!

 

 

'웹개발 > front-end' 카테고리의 다른 글

next.js란?  (0) 2024.04.05
[React]state  (0) 2024.04.03
SPA(single page application)에서 웹팩을 사용하는 이유  (0) 2024.03.25
[React]URL 페이지 연결하기  (0) 2024.03.25
[CSS]size의 단위  (0) 2024.03.25