함수레벨스코프

    [JavaScript] var, let, const의 비교(+ 블록레벨 스코프)

    01. var 키워드는 어떤 문제가 있을까? var 키워드는 중복선언을 허용한다. (기존에 의도와 다르게 변수값이 다르게 할당되는 경우가 발생할 수 있다.) var 키워드는 함수 레벨 스코프만을 허용한다. (함수를 제외한 다른 문에서 선언된 함수는 모두 전역함수가 된다. 전역변수의 남발) var 키워드는 변수 호이스팅에 의해 undefined로 초기화 된다. 02. let 키워드 let 키워드는 동일한 스코프범위내에서 중복선언을 금지한다. (문법에러(SyntaxError)가 발생한다.) function을 포함한 모든 문의 코드블록({}) 을 지역스코프로 인정한다. let은 선언단계와 초기화단계가 구분되어 진행됨으로 _선언단계 후 초기화단계전 까지는 변수를 참조할 수 없는 구간_이 생긴다. 이 구간을 일시..