TIL/Javascript
JS-이벤트 루프, 호이스팅, 클로저
홍차23
2020. 12. 10. 22:17
1. 이벤트 루프
Call Stack
Heap
Queue
Event loop
2. Hoisting
var, 선언이 끌어올려짐.
let, const 사용을 권장하는 이유.
선언문 형태로 정의한 함수의 유효범위는 전체 코드의 맨 처음부터 시작하므로,
표현식 형태의 함수사용 권장.
3. Closure
외부함수에 의해 반환되는 내부함수.
- 클로저 생성 조건
-
내부함수가 익명함수로 되어 외부함수 반환값으로 사용된다.
-
내부함수는 외부함수의 실행 환경에서 실행된다.
-
내부함수에서 사용되는 변수 x는 외부함수의 변수 스코프에 있다.
function outer(){
var name = `closure`;
function inner(){
console.log(name);
}
inner();
}
outer();
var name = `Warning`;
function outer(){
var name = `closure2`;
return function inner(){
console.log(name);
};
}
//callFunc 를 클로저라고 한다.
var callFunc = outer();
callFunc();
//이처럼 외부함수 호출이 종료되더라도 외부함수의 지역변수 및 스코프 객체의 체인 관계를 유지할 수 있는 구조 = 클로저