애플리케이션은 데이터를 다루고, 그 데이터의 입력과 출력을 가지고 작동한다. 그래서 변수는 이에 대한 데이터 관리를 하기위해 등장한 개념이라고 할 수 있다.
만약에 10 + 20 이라는 표현식이 있으면, 먼저, 이를 10,20, +라는 리터럴과 연산자를 평가하고, 이를 해성하는 파싱도 가능해야한다
하지만, 컴퓨터는 사람과 달리, 연산을 수행하는 곳과 데이터를 기억하는 곳이 나누어져 있다
컴퓨터는 CPU를 사용해 연산을 하고, 메모리를 사용해 기억을 한다
이때, 메모리는 셀의 집합체 이며, 셀 하나의 크기는 1바이트(8비트)로 이루어져 있다.
그리고 각 셀은 고유의 메모리 주소를 가지고 있으며, 이는 메모리 공간의 위치를 가리킨다.
또한, 컴퓨터는 모든 데이터를 2진수로 처리한다.
- 하나의 값을 저장하기 위해 확보한
메모리 공간 자체또는메모리 공간 식별을 위해 붙인 이름- 값의 위치를 가리키는 상징적인 이름
저장하는 것은 할당읽어들이는 것은 참조식별자
- 어떤 값을 구별해서 식별할 수 있는
고유한 이름
주소를 가리키고 있음변수를 사용하려면 반드시
선언이 필요하다
var let const
ReferenceError 에러 발생변수 선언이 소스코드가 한 줄씩 순차적으로 실행되는 시점,
즉런타임이 아니라 그이전 단계에서 먼저 실행됨
console.log(score); // undefined 변수 인지는 이미 되어있음! 다만 할당이 안되어있기에!
var score; // 변수 선언문
변수 호이스팅
변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징
선언하는 모든 식별자는 호이스팅이 된다
할당 연산자는 우변의 값을 좌변의 변수에 할당
var score //변수 선언
score = 80 //할당
console.log(x) //undefined
var x;
x = 10;
console.log(x); // 10
변수
선언은 소스코드가 순차적으로 실행되는 시점인런타임 아전에 실행되지만,
값의할당은 소스코드가 순차적으로 실행되는 시점인런타임에 실행
const 상수 이다해제하는 기능