기술 면접 및 정보

Const 선언 (23/04/03)

Daily정기 2023. 4. 3. 14:01

배열과 객체는 참조자료형이다. 데이터는 힙에 저장되고 변수에는 주소가 담긴다. 주소를 참조해 값을 가져오는 것이다. 배열이나 객체에 데이터를 추가하는 것은 상수를 재할당하거나 재선언하는 것이 아니라 주소가 가리키는 목록에 추가하는 것이다


스코프 : 변수에 접근할 수 있는 범위.
- var: 함수 스코프
- let, const: 블록 스코프
- 화살표함수는 블록 스코프를 가진다. b. 호이스팅
- var: 함수 스코프의 최상단으로 호이스팅되고 선언과 동시에 undefined로 초기화된다.
- let const: 블록 스코프의 최상단으로 호이스팅되고 할당 전까지는 초기화되지 않는다. 선언 전에 호이스팅이 되긴 하지만 값을 가지지 않기때문에 선언 전에 호출하면 Reference Error가 발생한다.( 선언은 되었지만 참조는 할 수 없는 사각지대가 생긴다) c. 글로벌에서 선언했을 때(strict mode가 아닌경우)
- var는 window에 바인딩된다.
- let const는 바인딩되지 않는다. d. 재선언
- var는 재선언이 가능하다.
- let const는 재선언이 불가능하다. e. let vs const
- var let은 재할당이 가능하다.
- const는 선언과 초기화가 반드시 동시에 일어나야 한다. 재할당이 불가능하다.