[JavaScript] 변수(4) - 변수 호이스팅


[JavaScript] 변수(4) - 변수 호이스팅

console.log(score); // undefined var score; // 변수 선언문 자바스크립트는 인터프리터에 의해 위에서부터 한 줄씩 실행되므로 console.log(score);가 실행되는 시점엔 아직 score 변수가 선언되지 않았으므로 참조 에러(ReferenceError)가 발생할 것처럼 보인다. 하지만 undefined가 출력된다. 그 이유는 변수 선언이 소스코드가 한 줄씩 순차적으로 실행되는 시점, 즉 런타임(runtime)이 아니라 그 이전 단계에서 먼저 실행되기 때문이다. 한 줄씩 순차적으로 실행하기 전, 소스코드의 평가 과정을 거쳐서 소스코드를 실행하기 위한 준비를 한다. 준비 단계인 소스 코드의 평가 과정에서 자바스크립트 엔진은 모든 선언문(변수 선언문, 함수 선언문 등)..


원문링크 : [JavaScript] 변수(4) - 변수 호이스팅