( 📖 '저자 이웅모 - 모던 자바스크립트 Deep Dive (자바스크립트의 기본 개념과 동작 원리)' 를 읽으며 정리한 내용 입니다. 책의 내용을 포함합니다. 상세한 내용은 책을 구매하여 읽어보시면 최고입니다.👍 )
값은 메모리에 기억된다.
변수는 값의 위치(값이 저장된 저장된 메모리의 주소)를 가리키는 상징적인 이름이다.
변수를 통해 안전하게 값에 접근할 수 있다.
변수의 이름을 식별자(identifier) 라고 한다.
식별자는 값이 아니라 메모리의 주소를 기억하고 있다.
식별자가 기억하고 있는 메모리 주소를 통해 메모리 공간에 저장된 값에 접근할 수 있다.
변수,함수,클래스 등의 이름은 모두 식별자다.
선언에 의해 식별자의 존재를 알린다.
변수를 생성하는 것이다.
메모리 공간(allocate)을 확보하고,
변수의 이름과 메모리 공간의 주소를 연결해서 값을 저장할 수 있게 준비한다.
🔑 변수 선언 = 선언 단계 ⇒ 초기화 단계
선언 단계에서 엔진에 변수의 존재를 알리고,
초기화 단계에서 공간을 확보하고 undefined를 할당한다.
ex) let score;
런타임 = 소스코드가 한 줄씩 순차적으로 실행되는 시점.
🔑 변수 호이스팅 = 소스코드 평가 ⇒ 소스코드 실행(런타임)
소스코드 평가 시점에 변수 선언을 포함한 모든 선언문(변수, 함수)을 소스코드에서 찾아 먼저 실행한다.
모든 선언문은 런타임 이전 단계에서 먼저 실행된다.
변수에 값을 할당(assignment),저장, 대입 할 때에는 할당 연산자(=)를 사용한다.
값의 할당은 런타임에 순차적으로 실행된다.
🔑 변수 선언은 런타임 전에 값의 할당은 런타임시에 순차적으로 할당
값을 할당 할 때는 undefined를 지우고 그 자리에 할당하는 것이 아니라
새로운 메모리 공간을 확보하고 그 곳에 값을 할당한다.
처음으로 값을 할당하는 것도 재할당이다.
값을 재할당할 수 없어서 변수에 저장된 값을 변경할 수 없다면 변수가 아니라 상수(constant)라고 한다.
메모리 공간을 지우고 그 메모리 공간에 재할당 하는 것이 아니라 새로운 메모리 공간을 확보하고 그 공간에 저장한다.
숫자로 시작하는 것은 허용하지 않는다.
예약어는 식별자로 사용할 수 없다.
🔑 네이밍 컨벤션(naming convention)
1. camelCase
2. snake_case
3. PascalCase
4. typeHungarianCase