변수란?
하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다.
다시 말하면 , 메모리 공간에 저장된 값을 다시 읽어 들여 재사용 할 수 있도록 메모리 공간에 상징적인 이름을 붙인 것이다.
이 변수 덕분에 우리는 직접 메모리 주소를 통해 값을 저장하고 참조할 필요가 없고
변수를 통해 안전하게 값에 접근할 수 있다.
변수 선언
변수 선언이란 변수를 생성하는 것을 말한다.
다시 말하면 값을 저장하기 위한 메모리 공간을 확보하고 변수 이름과 확보된 메모리 공간의 주소를 연결하여 값을 저장할 수 있게 준비하는 것이다.
변수를 사용하기 위해선 반드시 선언이 필요하다.
변수를 선언할 때는 var, let, const 키워드를 사용한다.
es6에서 let과 const가 도입되었다.
var 키워드는 뒤에 오는 변수 이름으로 새로운 변수를 선언할 것을 지시하는 키워드다.
(키워드는 자바스크립트 코드를 해석하고 실행하는 자바스크립트 엔진이 수행할 동작을 규정한 일종의 명령어다.)
위 변수 선언문은 다음과 같이 변수 이름을 등록하고 값을 저장할 메모리 공간을 확보한다.
var 키워드를 사용한 변수 선언 선언 단계와 초기화 단계가 동시에 진행된다.
1. 선언 단계 : 변수 이름 score 등록
2. 초기화 단계 : score변수에 암묵적으로 undefined 할당하여 초기화
초기화를 통해 메모리 공간에 이전에 다른 애플리케이션이 사용했던 값이 남아있어 쓰레기 값(garbage value)이
나올 수 있는 가능성을 제거한다.
값의 할당
변수에 갑슬 할당(대입, 저장) 할 때는 할당 연산자 = 를 사용한다.
할당 연산자는 우변의 값을 좌변의 변수에 할당한다.
값의 재할당
재할당이란 이미 값이 할당되어 있는 변수에 새로운 값을 또 다시 할당하는 것을 말한다.
var 키워드로 선언한 변수는 값을 재할당 할 수 있다.
재할당은 현재 변수에 저장된 값을 버리고 새로운 값을 저장하는 것이다.
var 키워드로 선언한 변수는 선언과 동시에 undefined로 초기화 되어 있기 때문에 엄밀히 말하면
변수에 처음으로 값을 할당하는 것도 사실은 재할당이다.
재할당은 변수에 저장된 값을 다른 값으로 변경한다. 그래서 변수라고 하는 것이다.
만약 값을 재할당할 수 없어서 변수에 저장된 값을 변경할 수 없다면 변수가 아니라 상수 (constant) 라 한다.
상수는 한번 정해지면 변하지 않는 값이다.
const 키워드
ES6에서 도입된 const 키워드를 사용해 선언한 변수는 재할당이 금지된다. 즉, const 키워드는 단 한번만 할당할 수 있는 변수를 선언한다. 따라서 const키워드를 사용하면 상수를 표현할 수 있다.