얼음꽃의 일지

호이스팅? Hoisting? 본문

항해 일지

호이스팅? Hoisting?

얼음꽃 2022. 12. 18. 09:43
728x90

호이스팅

-> 함수가 실행되기 전 혹은 전역에서 값을 실행하기 전에 필요한 변수 값들을 모두 모아서 유효 범위의 맨위에 선언하는 것을 의미

-> 호이스팅 가능한 대상 : Var   /   호이스팅 불가능한 대상:let, const

-> 함수 안에서도 호이스팅이 발생할 수 있음

 

function result() {
	var add				// 함수 표현식 호이스팅
    var result				// 함수 선언식 호이스팅
    
    add = function() {			// 함수 표현식 할당
    	retunr 1 + 2;
    }
    
    result = add();			// 함수 선언식 할당
    console.log(result)			// 호출
}

result()

-> 함수 선언식은 함수 전체를 호이스팅을 하고, 정의된 범위에서 맨 위로 호이스팅 되어서 함수 선언전에 함수를 사용가능

-> 함수 표현식은 별도의 변수를 할당하는데 이때 선언부만 호이스팅

 

즉, 함수 선언식은 선언과 동시에 바로 사용 가능하지만, 함수 표현식은 선언 되기도 이전에 그 값을 불러오려고 하면 문제가 발생 가능합니다.

728x90

'항해 일지' 카테고리의 다른 글

화살표 함수  (0) 2022.12.18
async & await  (1) 2022.12.18
Promise? 약속?  (0) 2022.12.18
CORS 란?  (0) 2022.12.18
정규화  (0) 2022.12.18