-
모던 자바스크립트 딥 다이브 4장. 변수Modern JavaScript Deep Dive 2022. 4. 15. 20:32
변수란?
하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름
CPU를 이용해 계산한 값을 재사용하기 위해서 변수라는 것을 마련해 메모리에 저장해 놓는다.
- 변수명: 메모리 공간에 저장된 값을 식별할 수 있는 고유한 이름
- 변수 값: 변수에 저장된 값
- 할당: 변수에 값을 저장하는 것
- 참조: 변수에 저장된 값을 읽어들이는 것
- 변수명 - 식별자: 어떤 값을 구별해서 식별할 수 있는 고유한 이름, 식별자는 값이 아니라 메모리 주소를 기억하고 있다.
즉, 식별자는 메모리 주소에 붙인 이름이다.
변수 이름은 첫 아이 이름을 짓듯이 심사숙고해서 지어야 한다.
변수 선언의 단계
- 선언 단계: 변수 이름을 등록해서 자바스크립트 엔진에 변수의 존재를 알린다.
- 초기화 단계: 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 undefined를 할당해 초기화한다.
실행 컨텍스트
변수 이름을 비롯한 모든 식별자는 실행 컨텍스트에 등록된다.
변수 선언의 실행 시점
자바스크립트 엔진은 변수 선언이 소스코드의 어디에 있든 상관없이 다른 코드보다 먼저 실행한다.
따라서 변수 선언이 소스코드의 어디에 위치하는지와 상관없이 어디서든지 변수를 참조할 수 있다.
즉, 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징을 변수 호이스팅이라고 한다.
var, let, const, function, class 키워드 모두 마찬가지로 호이스팅된다.
중요한 점은 변수 선언은 순서대로 소스코드가 실행되기 전에 먼저 실행되지만, 할당은 소스코드가 순차적으로 실행되는 시점인 런타임에 실행된다.
'Modern JavaScript Deep Dive' 카테고리의 다른 글
모던 자바스크립트 딥 다이브 6장. 데이터 타입 (0) 2022.04.16 모던 자바스크립트 딥 다이브 5장. 표현식과 문 (0) 2022.04.16 모던 자바스크립트 딥 다이브 3장. 자바스크립트 개발 환경과 실행 방법 (0) 2022.04.14 모던 자바스크립트 딥 다이브 2장. 자바스크립트란? (0) 2022.04.13 모던 자바스크립트 딥 다이브 1장. 프로그래밍 (0) 2022.04.12