- 변수를 선언하여 메모리에 값을 저장시키고, 변수의 이름 즉, 식별자는 메모리의 위치를 기억한다,
- 변수를 선언한 후 값을 할당하지 않은 경우, 메모리는 비어있는 것이 아니라 undefined 값이 할당되어 있다.
- Reference Error : 참조(메모리의 위치를 읽어오는 것) / 선언되지 않은 식별자를 참조했기 때문에 오류가 생기는 것.
- 변수 호이스팅 : 소스코디 실행 전, 소스코드의 평가 과정에서 자바스크립트 엔진은 변수 선언을 포함한 모든 선언문을 먼저 실행한다. 변수 선언문이 코드의 어디에 있든, 상단으로 끌어 올려진 것 처럼 동작하는 것을 '변수 호이스팅' 이라고 하며, 이는 JS 고유의 특징이다.
- 변수 선언은 메모리를 확보하고 undefined 값을 할당하는 것. 변수 선언은 런타임 이전에 실행되지만, 값의 할당은 런타임에 실행된다.
- 변수에 값을 할당할 때, 기존의 undefined를 지우고 다시 할당하는 것이 아니라, 새로운 메모리 공간을 확보해 거기에 저장하는 것.
- 확보된 메모리 공간에 이전에 사용했던 값들, 즉 식별자가 없는 쓰레기 값(garbage value)는 가비지 콜렉터에 의해 자동으로 해제된다. 자바스크립트는 가비지 콜렉터를 내장하고 있는 매니지드 언어로, 이를 통해 메모리 누수를 자동으로 방지한다.
- 자바스크립트에서 보통 변수/함수 네이밍에는 카멜케이스를, 생성자함수/클래스 이름에는 파스칼 케이스를 사용한다.
'JavaScript > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
[모던 자바스크립트 딥다이브] 17. 생성자 함수 (0) | 2022.06.16 |
---|---|
[모던 자바스크립트 딥다이브] 함수 선언문, 함수 표현식 (0) | 2022.05.23 |
[모던 자바스크립트 딥다이브] switch문, while문 (0) | 2022.02.22 |