Scope란, 작성하는 코드의 접근 범위를 결정하는 개념으로 변수 접근 규칙에 따른 유효 범위를 나타냅니다.
JavaScript는 기본적으로, 함수가 선언되는(lexical) 동시에 자신만의 Scope를 가집니다.
변수 접근 규칙에 따른 유효범위란 변수와 그 값이 어디서부터 어디까지 유효한지를 판단하는 범위
Global Scope - 어떤 함수로도 둘러쌓여있지 않은 가장 최상위 Scope, 전역스코프
안쪽 local Scope에서 바깥 변수/함수를 접근하는 것은 가능하나 바깥쪽 Scope에서 안쪽 변수/함수를 접근하는 것은 불가능하다.
스코프는 계층 구조.
하위스코프에서 상위스코프 접근 허용이 된다.
찾을 때 까지 타고 올라간다.
체인 : 한단계 한단계 올라가는 현상
상위스코프에선 하위 스코프를 들여다 보지 않는다.
global scope 에서 선언한 변수 : 전역변수
let name = "Reo";
function showName() {
name = "Jaejin";
console.log(name);
}
console.log(name); //"Reo"
showName(); //"Jaejin"
console.log(name); //"Jaejin"
선언(let)이 없기 때문에, 바깥 scope에 있는 name이라는 변수를 가져옵니다