var : 함수 스코프(함수 스코프가 아니라면 어디서든 호출 할 수 있음)
let,const : 블록 스코프
-- var는 권장하지않음
스코프 내부 어디서든 변수 선언은 최상위에 선언된 것 처럼 행동
let,var,const는 전부 호이스팅이 되지만 TDZ(Temporal Dead Zone)때문에 let,const는 할당되기 전에는 불러올 수 없다. 따라서 let,const를 사용하길 권장한다.그래야 오류에 대비할 수 있다. var는 할당이 안되면 let,const처럼 오류가 나오지 않고 실행되면서 undefined가 나온다.