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 |