변수는 프로그래밍 언어에서 데이터를 관리하기 위한 핵심 개념이다. 이번 장을 학습하며,
- 변수의 개념에 대해서 이해하고,
- 호이스팅의 개념과 발생 이유를 살펴보며,
- 문과 토큰 세미콜론에 대해서 알아보고자 한다.
1. 변수
- 변수(variable)은 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다.
- 값의 위치를 가리키는 상징적인 이름이며 그 메모리 주소를 기억한다.
- 메모리 주소를 통해 직접 접근하는 것은 치명적 오류를 발생시킬 수 있다. 따라서 JS에서는 개발자의 직접적인 메모리 제어를 허용하지 않는다.
- 변수에 값을 저장하는 것을 할당(대입, 저장)이라 하고, 변수에 저장된 값을 읽어 들이는 것을 참조라 한다.
2. 호이스팅의 개념과 발생 이유
- 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징을 호이스팅이라 한다.
- 변수 선언이 소스코드가 한 줄씩 순차적으로 실행되는 시점, 즉 런타임이 아니라 그 이전단계에서 먼저 실행되기 때문이다.
- 변수 선언은 소스코드가 순차적으로 실행되는 시점인 런타임 이전에 먼저 실행되지만 값의 할당은 소스코드가 순차적으로 실행되는 시점인 런타임에 실행된다.
3. 문, 토큰, 세미콜론
- 문(statement)은 프로그램을 구성하는 기본 단위이자 최소 실행 단위다
- 토큰(token)이란 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 의미한다.
- 문장 끝에 붙이는 세미콜론은 옵션이다. 즉 생략 가능하다. 이는 자바스크립트 엔진이 세미콜론 자동 삽입 기능(ASI: Automatic semicolon insertion)을 암묵적으로 수행하기 때문이다.
개념을 이해한다는 것은 바로 용어를 정확히 이해하고 설명할 수 있다는 것이다.
앞으로 <모던자바스크립트 Deep Dive>를 학습하며, 이전에 들어봤던 혹은 새로운 개념들을 계속 접하게 될 것입니다. 다양한 개념들을 숙지하고 이를 직접 프로그래밍에 활용하는 것이 물론 중요하나, 1독을 진행하며 완벽하게 이해하고 습득하려는 욕심을 조금 내려놓고자 합니다(물론 완벽이라는게 불가능하겠지만...) 대신 지금과 같이 내용을 정리하고 기록으로 남겨 계속해서 리마인드 해 나갈 수 있는 것을 목표로 하겠습니다!