whatisthis?
javaScript. 호이스팅(Hoisting) 이란? 본문
JavaScript에서 호이스팅(hoisting)이란,
인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미
var | 호이스팅 시 undefined로 변수를 초기화 |
let과 const | 호이스팅 시 변수를 초기화하지 않음 |
호이스팅을 "변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 옮기는" 것으로 말하곤 함.
따라서 변수를 정의하는 코드보다 사용하는 코드가 앞서 등장할 수 있음.
- 자바스크립트 엔진은 코드를 실행하기 전 실행 컨텍스트를 위한과정에서 모든 선언(var, let, const, function, class)을 메모리에 저장한다.
- 코드 실행 전 이미 변수선언/함수선언이 메모리에 저장되어 있기 때문에 선언문보다 참조/호출이 먼저 나와도 오류 없이 동작한다.
https://mywebproject.tistory.com/74
이전에 포스팅했던 변수선언 관련해서 [호이스팅]에 대해 내용 추가함.
사용 예.
catName("클로이");
function catName(name) {
console.log("제 고양이의 이름은 " + name + "입니다");
}
💡 주의
console.log(num); // ReferenceError
num = 6; // 초기화
위와 같이 변수의 선언(const/let/var) 없이 초기화만 한다면,
Reference Error이 발생한다. (호이스팅이 되지 않으므로!)
REFERENCE
'WEB STUDY > JAVASCRIPT' 카테고리의 다른 글
javaScript. Array(배열) (0) | 2021.12.06 |
---|---|
javaScript. Math.floor과 Math.trunc의 차이 (0) | 2021.12.06 |
Momentum clone (part final) (0) | 2021.11.28 |
javascript) 객체(object)의 구성 + JSON / AJAX (0) | 2021.11.06 |
javascript) 자바스크립트 ' this ' (0) | 2021.11.06 |