애플리케이션은 데이터
를 다루고, 그 데이터의 입력
과 출력
을 가지고 작동한다. 그래서 변수
는 이에 대한 데이터 관리
를 하기위해 등장한 개념이라고 할 수 있다.
만약에 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
상수 이다해제
하는 기능