let myNumber = 23;
myNumber는 변수의 값이 아닌 메모리 주소를 기억한다.
변수명을 사용하면 자바스크립트 엔진이 변수명과 맵핑된 메모리 주소를 통해 거기에 저장된 값 23을 반환한다.
값을 저장하는것 - 할당
저장된 값을 읽어들이는것 - 참조
자바스크립트 엔진에 알리는것 - 선언
호이스팅 - 식별자(var, let, function 등)는 어디에 있든 상관없이 다른 코드보다 먼저 실행되는(런타임 이전) 특징
1. var k;
2. console.log(k); // undefined
1. console.log(k); // undefined
2. var k;
k를 뒤에서 선언했는데도 undefined로 초기화됨
-> 해당 변수가 없으면 아예 not defined라고 에러가 뜸
-> 값 할당이 안됬을 뿐 선언은 되어서 undefined를 반환
var 특징
- 변수 중복 선언 가능 - 예기치 못한 값 반환 가능
- 함수 레벨 스코프 - 전역 변수로 인식
- 변수 선언문 이전에 변수를 참조하면 항상 undefined 반환
let 특징
- 중복선언 불가
- 재할당 가능
- 블록 레벨 스코프
const 특징
- 선언과 초기화 동시에 진행해야함
- 재선언, 재할당 불가
- 블록 레벨 스코프