스코프
현재 실행되는 컨텍스트를 말한다.
여기서 컨텍스트는 값과 표현식이 "표현"되거나 참조 될 수 있음을 의미한다.
만약 변수 또는 다른 표현식이 "해당 스코프"내에 있지 않다면 사용할 수 없다.
스코프는 또한 계층적인 구조를 가지기 때문에 하위 스코프는 상위 스코프에 접근할 수 있지만 반대는 불가하다.
함수는 자바스크립트에서 클로저 역할을 하기 때문에 스코프를 생성하므로 함수 내에 정의된 변수는 외부 함수나 다른 함수 내에서는 접근 할 수 없다.
function exampleFunction() {
let x = "declared inside function";
// x는 오직 exampleFunction 내부에서만 사용 가능.
console.log("Inside function");
console.log(x);
}
console.log(x); // 에러 발생
let x = "declared outside function";
exampleFunction();
function exampleFunction() {
console.log("Inside function");
console.log(x);
}
console.log("Outside function");
console.log(x);