15장. let, const 키워드와 블록 레벨 스코프

Jun_Gyu·2024년 12월 23일
0

한 발자국 더, JS

목록 보기
8/34
post-thumbnail

1. var 키워드의 문제점

1). 변수 중복 선언 허용

중복 선언 및 값의 재할당에 따른 부작용, Side Effect 발생

2). 함수 레벨 스코프

var 키워드로 선언된 변수는 오직 코드블록(함수)지역 스코프로 인정됨,
전역변수 생성을 남발하게 되는 문제가 발생.

3). 변수 호이스팅

var 키워드로 선언한 변수는 선언문 이전에 참조 가능하지만,
할당문 이전에 참조하면 undefined를 반환.



2. let 특징

1). 변수 중복 선언을 금지함

동일한 이름의 변수를 선언 시 문법 에러가 발생하게 됨.

2). 블록 레벨 스코프

var 키워드와 달리 모든 코드 블록을 지역 스코프로 인정

3). 변수 호이스팅

변수 호이스팅은 발생하나, 마치 발생하지 않는것처럼 동작됨.
선언문 이전에 변수를 참조하면 참조에러를 발생시키며, 선언 단계와 변수값 초기화 단계를 분리해둠.



3. const 특징

1). 선언과 동시에 초기화

const 키워드로 선언한 변수는 선언과 동시에 초기화가 이루어짐.

2). 재할당 금지

재할당이 가능한 let 키워드와는 달리 const는 재할당을 허용하지 않는다.



4. const와 객체

const 키워드로 선언된 변수에 객체를 할당한 경우 값을 변경 할 수 있음

✨중요! : const는 재할당을 금지하나, 값의 불변성을 의미하는것은 아님!

즉 프로퍼티 동적 생성, 삭제, 값의 변경을 통해 객체 변경하는 것은 가능하다.

5. 결론

ES6로 변경됨에 따라 let, const를 통해 변수를 선언하고 사용하게 되었으며,

이 중에서도 가능한 const 키워드를 통한 변수 선언으로 코드를 구성하는것이 권장되며, 변수값의 재할당이 필요한 경우에만 한정하여 let 키워드를 사용하는것이 좋다!



profile
시작은 미약하지만, 그 끝은 창대하리라

0개의 댓글