JS 정적 스코프
JS 렉시컬 스코프
JS 는 렉시컬 스코프. 렉시컬 스코프는 정적 스코프.
-
정적 스코프 vs 동적 스코프
-
정적 스코프
함수를 어디서 선언하였는지에 따라 상위 스코프 결정
-
let microcephalus7 = "microcephalus7";
function home() {
let microcephalus7 = "microcephalus7@gmail.com";
console.log(microcephalus7);
microcephalus7Call();
}
function microcephalus7Call() {
console.log(microcephalus7); // 함수 호출 시점에서 환경과 상관없이 스코프는 전역을 참조함
home();
// microcephalus7@gmail.com
// microcephalus7
-
동적 스코프
함수를 어디서 호출했는지에 따라 상위 스코프 결정
let microcephalus7 = "microcephalus7";
function home() {
let microcephalus7 = "microcephalus7@gmail.com";
console.log(microcephalus7);
microcephalus7Call(); // 함수 호출 시점은 home 함수 내부이므로 스코프는 home 함수에서 설정됨
}
function microcephalus7Call() {
console.log(microcephalus7);
}
home();
// microcephalus7@gmail.com
// microcephalus7@gmail.com
-
렉시컬 스코프
정적 스코프
JS 가 채택한 스코프 방식