본문 바로가기
WebDev/항해99

var, let, const의 차이점

by S.AHA_dev 2023. 8. 3.
728x90
반응형

위 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