스코프(scope)란 우리말로 번역하면 ‘범위’라는 뜻을 가지고 있습니다.
즉, 스코프란 ‘변수에 접근 할 수 있는 범위’ 라고 할수 있습니다
스코프
스코프 타입은 2가지가 있습니다
전역(global) 타입
전역 스코프(Global Scope)는 전역에 선언되어 있어서 어느 곳에서든 해당 변수에 접근 할 수 있다는 의미 입니다.
//JavaScript
const globalVariable = 'I am a global variable';
function globalFunction() {
console.log(globalVariable); // 전역 스코프에서의 변수 접근
}
globalFunction();
globalVariable변수는 어디에서든 접근 가능합니다
지역(local) 타입
지역 스코프(Local Scope)는 해당 지역에서만 접근할 수 있어 지역을 벗어난 곳에선 접근 할수 없다는 의미 입니다.
자바스크립트에서 함수를 선언하면 함수를 선언할 때마다 새로운 스코프를 생성하게 됩니다. 그러므로 함수 몸체에 선언한 변수는 해당 함수 몸체 안에서만 접근할 수 있는데요.
이걸 함수 스코프(function-scoped)라고 합니다
//JavaScript
function outerFunction() {
// 로컬 함수: outerFunction 내부에서만 접근 가능
function localFunction() {
console.log('I am a local function.');
}
// 로컬 함수 호출
localFunction();
}
outerFunction(); // outerFunction 내부에서 localFunction 호출
// localFunction(); // 오류: localFunction은 외부에서 직접 접근할 수 없음
위의 코드에서 localFunction은 outerFunction 내에서 정의되었으며, outerFunction 내부에서만 호출할 수 있습니다. 외부에서 localFunction에 직접 접근하려고 하면 오류가 발생 합니다.
정리
✅
지역 스코프는 지역 함수를 사용해 지정 할 수 있습니다.
스코프를 이용해 변수와 함수의 유효 범위를 정의 합니다.
✅
필자는 “객체”또한 함수와 마찬가지로 스코프 범위라고 착각하였습니다.
스코프는 함수가 호출될 때 생성됨으로 혼동하지 맙시다