let, const 는 ES6에서 새롭게 추가된 변수이다.
var는 함수 스코프, let const는 블록 스코프이다.
undefined는 선언만되고 값이 없는 상태, null은 자료형이 객체이며 빈값number로 모든 수를 실수로 처리한다.코드들이 실행되기 위해 변수객체, 스코프체인, this (프로토타입) 정보를 담고 있는 곳.
컨텍스트가 생성 후 함수가 실행되고 함수 실힝이 마무리되면 해당 컨텍스트는 사라진다.
변수 선언부분이 최상단으로 끌어올려지는 현상 (해당 컨텍스트의 최상단)
console.log(a)
var a = 1;
// undefined
var는 undefined로 초기화한다.
const는 호이스팅이 안된다.

자신이 생성될때의 환경을 기억하는 함수
반환된 내부함수가 자신 스코프를 기억하여 환경 밖에서도 내부 상태를 접근할 수 있다.