JS에서 var로 변수 선언이 가능했는데, 왜 const와 let이 나왔으며 이 둘의 사용을 권장할까?
이를 정확하게 알기 위해서는, 변수의 선언 및 할당 과정, 호이스팅, 스코프를 알아야한다!
📥 변수의 선언 및 할당 과정
변수란?
- 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름.
- JS는 managed language 이기 때문에 개발자가 직접 메모리를 제어하지 못함.
- 개발자는 변수를 통해 안전하게 값에 접근이 가능.
const로 알아보자
const myNumber = 23
// 변수명(식별자): myNumber
// 해당 값의 위치(메모리 주소): 0012CCGWH80
// 변수 값(저장된 값): 23

- 변수명(식별자)인 myNumber는 변수의 값이 아닌 메모리 주소를 기억.
- 자바스크립트 엔진이 변수명과 매핑된 메모리 주소를 통해 저장된 값(23)을 반환.
- 이처럼 변수에 값을 저장하는 것을 할당(assignment), 변수에 저장된 값을 읽어 들이는 것을 참조(reference).
- 변수명을 자바스크립트 엔진에 알리는 것을 선언(declaration)이라 한다.
변수 선언과 할당
- 선언은
var
, const
, let
으로 할 수 있음.
- 자바스크립트에서 변수 선언은 선언 → 초기화 → 할당을 거쳐 수행됨.
- 선언 단계: 변수명을 등록하여 자바스크립트 엔진에 변수의 존재를 알린다.
- 초기화 단계: 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 undefined를 할당해 초기화한다.
var myName // 변수 선언
myName = 'hyosung' // 값의 할당
🎈 호이스팅