기술영역 : Javascripts
질문 : let, var, const의 차이점과 호이스팅에 대해 설명
호이스팅이란?
인터프리터가 변수와 함수의 메모리공간을 미리 선언전에 미리 할당하는 것
변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 옮기는 것
인터프리터 : 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경
참조 : https://developer.mozilla.org/ko/docs/Glossary/Hoisting
let, var, const 차이점
| 재선언 | 재할당 | |
|---|---|---|
| let | 불가능 | 가능 |
| var | 가능 | 가능 |
| const | 불가능 | 불가능 |
var는 전역변수로 재선언과 재할당이 모두 가능하기 때문에 아주 편리해보이지만 의도되지 않은 side effect가 발생할 수 있어 사용에 주의!
전역변수 : 가장 바깥 스코프에 정의한 변수(어디서든 접근이 가능함)
스코프 : 변수 접근 규칙에 따른 유효범위
=> 바깥쪽 스코프에서 선언한 변수는 안쪽 스코프에서 접근이 가능하지만 안쪽 스코프에서 선언한 변수는 바깥쪽 스코프에서 접근이 불가능함