개발 관련/Server

[Javascript] 호이스팅

magpiebros 2023. 12. 20. 14:40
반응형

자바스크립트는 호이스팅이란는 것이 있다.

컴파일 전에 선언된 녀석들을 위로 끌어당긴다는 의미와 가깝다

 

myFunc();

function myFunc() {
console.log("I'm alive");
};

 

hello 함수가 나중에 선언되었지만, 이 함수는 정상 호출된다.

이를 함수 선언식의 호이스팅이라 한다.

 

notCall();

var notCall = function () {
console.log("I didn't born.");
};

 

이렇게 함수를 변수에 담아놓고 호출하면 오류가 발생한다.

함수 표현식은 호이스팅이 되지 않는다.

 

자바스크립트는 선언에 대해서만 호이스팅을 지원한다.

변수 할당에 대한건 무시.

 

console.log(notEmpty);
var notEmpty = 3;

 

undefined 출력

 

 

왜 undefined인것인가?

notEmpty는 선언되었으나, log시에는 값이 할당되지 않았기 때문이다.

 

 

반응형