핵심 답변
📌 스코프(Scope)란 변수나 함수가 접근 가능한 유효 범위입니다.
전역 스코프(Global Scope): 코드 어디서든 접근 가능
함수 스코프(Function Scope): 함수 내부에서만 접근 가능,
var 사용블록 스코프(Block Scope):
{} 내부에서만 접근 가능, let, const 사용var는 함수 스코프를 따르며, if/for 블록을 벗어나도 접근할 수 있습니다. let, const는 블록 스코프를 따릅니다.
예시 코드
javascript
function example() {
var funcVar = '함수 스코프'; // 함수 내 어디서든 접근 가능
if (true) {
let blockLet = '블록 스코프'; // 이 블록 안에서만 접근 가능
var hoistedVar = '호이스팅됨'; // 함수 스코프로 올라감!
}
console.log(hoistedVar); // 접근 가능
// console.log(blockLet); // ReferenceError!
}핵심 용어
📌 스코프 체인(Scope Chain)중첩된 스코프에서 변수를 찾을 때 내부에서 외부로 순서대로 탐색하는 메커니즘입니다. 전역 스코프까지 찾지 못하면 ReferenceError가 발생합니다.
📌 렉시컬 스코프(Lexical Scope)함수가 선언된 위치를 기준으로 스코프가 결정됩니다. JavaScript는 렉시컬 스코프를 따르며, 동적 스코프와 반대되는 개념입니다.