자바스크립트에서 변수를 선언하는 방법에는 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 |