728x90
호이스팅
자바스크립트 엔진은 소스코드를 실행하는 런타임 이전에 소스코드의 평가 과정을 거치면서 소스 코드를 실행하기 위한 준비를 한다.
소스코드 평가 과정에서 모든 선언문(변수 선언문, 함수 선언문 등)을 찾아내 먼저 실행한다.
이 특징을 호이스팅이라고 한다.
평과 과정이 끝나면 모든 선언문을 제외한 소스코드를 한 줄씩 순차적으로 실행한다.
- 함수 호이스팅
함수 선언문 : 호이스팅 가능
함수 표현식 : 호이스팅 불가 (함수 표현식 = 함수 객체를 변수에 할당한 것, 즉 할당이기 때문에 런타인 시점에서 동작)
* 함수 선언문은 함수 객체 생성이고 변수 선언문은 변수에 값을 할당하는 것이기 때문에
호이스팅이 일어날 때 함수 선언문은 함수 객체를 실행할 수 있지만
변수 선언문은 변수의 실행 시점이 아닌데 호출되었다면 undefined를 반환한다.
* 함수 표현식으로 정의하면 식별자에 할당이기 때문에 변수 호이스팅이 발생한다.
참고자료 : 모던 자바스크립트 딥 다이브
'학습 내용 정리 > javascript' 카테고리의 다른 글
실행 컨텍스트와 클로저 (0) | 2023.08.04 |
---|---|
브라우저의 렌더링 과정 (0) | 2023.08.04 |
가비지 콜렉터와 매니지드 언어 (0) | 2023.08.04 |
javascript Error Handling (0) | 2023.08.03 |
Promise (0) | 2023.08.03 |