JavaScript를 처음 배우다 보면 다음과 같은 코드를 보고 의아할 때가 있습니다.console.log(name);var name = "홍길동";분명 name 변수를 선언하기 전에 사용했는데도 에러가 발생하지 않습니다.실행 결과는 다음과 같습니다.undefined왜 이런 일이 발생할까요?바로 호이스팅(Hoisting) 때문입니다. 호이스팅(Hoisting)의 개념호이스팅(Hoisting)은 자바스크립트 엔진이 코드를 실행하기 전에 변수와 함수 선언을 해당 스코프의 최상단으로 끌어올려 처리하는 동작을 말합니다.실제로 코드가 이동하는 것은 아니지만, 자바스크립트 엔진이 그렇게 동작하는 것처럼 보입니다.예를 들어 다음 코드를 보겠습니다.console.log(name);var name = "홍길동";자바스크..