식별자의 유효 범위.
자바스크립트는 정적 스코프임.
호출 스택과 상관 없이 선언 시점에 스코프를 결정함.
var a = "뚱인데요";
function say() {
var a = "사랑해요";
getA();
}
function getA() {
console.log(a);
}
say(); // 뚱인데요
런타임 도중에 실행 컨텍스트나 호출 컨텍스트에 의해 결정됨.
var a = "뚱인데요";
function say() {
var a = "사랑해요";
getA();
}
function getA() {
console.log(a);
}
say(); // 사랑해요
함수와 렉시컬 환경 (Lexical Environment) 의 조합.
함수가 생성될 당시의 외부 변수를 기억하여
생성 이후에도 계속해서 접근이 가능함.
function makeAdder(x) {
return function(y) {
return x + y;
}
}
const add3 = makeAdder(3);
console.log(add3(5)); // 8
const add2 = makeAdder(2);
console.log(add2(3)); // 5
참고
https://www.youtube.com/watch?v=tpl2oXQkGZs&ab_channel=ZeroChoTV