호이스팅이란 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미, 변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 옮기는 것. 쉽게 말하면 선언되지 않은 변수나 함수를 끌어올려서 사용해버리는 것. catName("클로이"); function catName(name) { console.log("제 고양이의 이름은 " + name + "입니다"); } /* 결과: "제 고양이의 이름은 클로이입니다" */ (이 경우 호이스팅이 발생했다고 한다) 위 코드는 에러가 나와야 정상이지만 Javascript에서는 동작한다. Javascript는 느슨한 제약을 가진 언어이다. 호이스팅이 발생한 코드는 가독성이 떨어지고 유지보수를 어렵게한다. 특히 var을 사용하면 호이스팅이 일어날 확률이 높다...