Dynamic / Lexical
어휘적 스코프: 함수가 선언된 시점의 환경을 사용한다.
동적 스코프: 함수가 호출된 시점의 환경을 사용한다.
Block / Function
블록 스코프: 모든 블록이 자신만의 스코프를 가진다. (if, for, while, function, ...)
함수 스코프: 함수만이 자신만의 스코프를 가진다.
JavaScript
// 자바스크립트는 함수 스코프를 사용한다.
let a = 10;
const fnA = () => {
console.log(a);
}
const fnB = () => {
// 함수내에서 새로운 스코프 변수를 선언할 수 있다.
const a = 15;
console.log(a);
}
fnB(); // 15
fnA(); // 10