위 3가지는 JS에서 변수를 선언하는 키워드.
이 세 가지 키워드에는 서로 다른 기능과 특징이 있음.
var
-함수 범위 지역 변수(function-scoped)를 선언.
함수 외부에서 선언된 변수는 전역 변수가 되며,
함수 내에서 선언된 변수는 그 함수의 지역 변수가 됨.
-변수가 호이스팅되어 선언 이전에 참조.
호이스팅은 변수 선언이 코드 상단으로 '올라가는' 것처럼 동작하는 현상(함수 호이스팅과 비슷).
그러나 이 때 변수의 초기화는 선언 위치에서 수행.
-초기화되지 않은 var 변수는 undefined.
let
- 블록 범위 지역 변수(block-scoped)를 선언.
let으로 선언된 변수는 해당 선언이 위치한 블록(중괄호 `{}`로 둘러싸인 구역) 안에서만 유효.
let변수 또한 호이스팅되지만, 선언 전 참조를 시도하면 ReferenceError.
초기화되지 않은 let변수는 undefined
const
- 블록 범위 상수(block-scoped constant)를 선언.
const로 선언된 변수는 이후에 값을 변경할 수 없음.
- 상수 선언이기 때문에 선언 시 반드시 초기화해야 함.
선언 후에 초기화하거나 값을 변경하려고 하면 TypeError.
-const 변수도 호이스팅되고 선언 전 참조를 시도하면 ReferenceError
요약하자면, var, let, const는 변수와 상수의 범위와
값의 수정 가능 여부에 따라 다르게 동작.
ES6+에서는 주로 let과 const를 사용하여 변수와 상수를 선언하기 때문에, 코드의 가독성과 유지 보수성을 높이고 실수 방지 가능
'WebDev > 항해99' 카테고리의 다른 글
실전프로젝트 1주차 회고 (0) | 2023.08.06 |
---|---|
Async/Await와 Promise의 차이점 (0) | 2023.08.04 |
useEffect는? (0) | 2023.08.02 |
typescript 기본 문법 (0) | 2023.08.01 |
버츄얼돔과 리얼돔의 차이 (0) | 2023.08.01 |