1. 호이스팅(hoisting) 자바스크립트에서는 모든 선언문 (변수 선언문, 함수 선언문 등)을 런타임(runtime)이전 단계에서 실행한다. 이렇게 변수와 함수를 코드 맨 위로 끌어 올린 것 처럼 동작하는 특징을 호이스팅(hoisting : 끌어올리다, 게양하다) 이라고 한다. 2. 스코프(scope) 스코프는 식별자의 유효범위를 뜻한다. 전역에 선언된 변수는 전역 스코프를, 지역에 선언된 변수는 지역 스코프를 지닌다. 3. var의 문제점 var은 변수의 중복 선언을 허용한다. 이는 오류가 발생할 확률을 줄여 줄 수 있다. 하지만 여기서 스코프의 범위 문제가 발생한다. 현재 예제 코드는 짧기 때문에 바로 알아챌 수 있지만 코드가 길어질 경우 코드 어딘가에 전역변수 선언이 되어있어 재할당이 되어버리는..