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();
//이처럼 외부함수 호출이 종료되더라도 외부함수의 지역변수 및 스코프 객체의 체인 관계를 유지할 수 있는 구조 = 클로저
'TIL > Javascript' 카테고리의 다른 글
React.js | TypeError: Cannot read property ‘replace’ of undefined (0) | 2021.01.15 |
---|---|
[33 Concepts JS] Call Stack (0) | 2020.12.11 |
[모던자바스크립트 deep dive] 디버깅, code runner (2) | 2020.12.11 |
[Javascript] 함수도 객체다 (0) | 2020.12.03 |
[Javascript] 함수 생성 방식과 호이스팅 (0) | 2020.12.03 |
댓글