반응형
스코프(scope)는 변수가 어디에서 접근 가능한지를 결정하는 규칙입니다.
전역 스코프
- 전역 변수는 코드 어디에서나 접근할 수 있는 변수입니다.
- 함수 밖에서 선언된 변수는 전역 변수로 간주됩니다.
- 전역 스코프에서 선언된 변수는 스크립트 전체에 걸쳐 사용될 수 있습니다.
var globalVar = "I am global"; // 전역 변수
function displayVar() {
console.log(globalVar); // 함수 내에서도 전역 변수를 접근할 수 있음
}
displayVar(); // 출력: I am global
지역 스코프
- 지역 변수는 특정 블록, 함수 또는 구문 내에서만 접근 가능한 변수입니다.
- 함수 내부에서 선언된 변수는 함수 스코프에만 존재합니다.
function localScopeExample() {
var localVar = "I am local"; // 지역 변수
console.log(localVar); // 함수 내부에서는 접근 가능
}
localScopeExample();
console.log(localVar); // 오류 발생: localVar는 함수 외부에서는 접근 불가
블록 스코프
- let과 const로 선언된 변수는 블록 스코프를 가집니다.
- 블록 {} 내에서만 유효하며, 해당 블록 밖에서는 접근할 수 없습니다.
if (true) {
let blockVar = "I am block-scoped"; // 블록 스코프
console.log(blockVar); // 출력: I am block-scoped
}
console.log(blockVar); // 오류 발생: blockVar는 블록 외부에서 접근 불가
함수 스코프
- var 키워드로 선언된 변수는 함수 스코프를 가집니다. 함수 내부에서 선언된 변수는 해당 함수안에서만 유효합니다.
- var는 블록 스코프를 따르지 않고 함수 스코프를 따릅니다.
function functionScopeExample() {
var functionScopedVar = "I am function scoped";
if (true) {
var anotherVar = "Still in function scope";
}
console.log(anotherVar); // 출력: Still in function scope
}
functionScopeExample();
console.log(anotherVar); // 오류 발생: anotherVar는 함수 외부에서 접근 불가
렉시컬 스코프
- 자바스크립트는 렉시컬 스코프를 사용합니다. 함수가 선언된 위치에 따라 스코프가 결정되고, 중첩 함수는 자신이 선언된 스코프 외부에 있는 변수에 접근할 수 있습니다.
function outer() {
var outerVar = "I am outer";
function inner() {
console.log(outerVar); // 외부 스코프에 접근 가능
}
inner();
}
outer(); // 출력: I am outer
https://idocleancode.tistory.com/424
관련자료
반응형
'Tutorials > JavaScript' 카테고리의 다른 글
[JavaScript] Number (0) | 2024.10.06 |
---|---|
[JavaScript] string (2) | 2024.10.02 |
[JavaScript] 변수 네이밍 규칙 (1) | 2024.09.23 |
[JavaScript] 호이스팅 (2) | 2024.09.15 |
[JavaScript] 변수의 선언 (2) | 2024.09.07 |