➡️ 따라서 JS는 개발자의 직접적인 메모리 제어를 허용하지 않는다.
대신 저장된 값을 읽어 재사용하기 위해 변수라는 메커니즘을 제공한다.
변수
하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름
쉽게 말하면 값의 위치를 가리키는 상징적인 이름!
var result = 10 + 20;
result
30
식별자
- 어떤 값을 구별해서 식별 가능한 고유한 이름
- 식별자는 값이 아닌 메모리 주소를 기억하고 있다.
- 클래스, 함수, 변수 등 이름은 모두 식별자!
- 네이밍 규칙을 준수해야 하며 선언을 통해 JS 엔진에 식별자 존재를 알린다.
var
,let
,const
키워드
- JS 엔진이 수행할 동작을 규정한 일종의 명령어
var 키워드 변수 선언
undefined
)var
키워드로 선언된 변수는 어떤 값도 할당하지 않아도 undefined 값을 가진다.쓰레기 값
- 이전에 사용하던 값이 남아 있는 것
런타임
- 소스코드가 한 줄씩 순차적으로 실행되는 시점
var score = 80;
위의 코드처럼 변수 선언과 값의 할당을 하나로 단축 표현해도 선언과 할당은 각각 나누어 실행된다. 따라서 여전히 변수에 undefined로 초기화되는 것은 동일하다.
유의할 점은 값 할당 시 undefined
가 있던 메모리 공간을 지우고 할당하는 게 아니라 새 공간을 확보해서 거기에 값을 저장한다.
재할당 : 값이 할당되어 있는 변수에 새 값을 다시 할당하는 것
상수 : 값을 재할당할 수 없어 변수에 저장된 값을 변경할 수 없는 경우. 한 번 정해지면 변하지 않는, 한 번만 할당 가능한 변수다.