Scope는 유효범위로 변수가 어느 범위까지 참조되는 지를 뜻한다.
const a = 1; // -> Global Scope
{
const b= 2; // -> Local Scope
console.log(a,b); // 1 ,2
}
console.log(a,b)
closure는 함수가 선언된 환경의 스코프를 기억하여 함수가 스코프 밖에서 실행될 때에도 기억한 스코프에 접근할 수 있게 만드는 문법이다.
function handleGreeting(name){
const greeting = "Hello,";
return function (){
console.log(greeting + name);
};
}
const world = handleGreeting("world");
const heejin = handleGreeting("heejin");
world();
heejin();
world나 heejin 함수를 실행할때, greeting 함수도 실행된다.