반응형
스코프는 변수나 함수의 접근성과 생명주기를 결정하는 영역입니다. 다시 말해, 어떤 변수가 함수 바깥에서 접근 가능한지, 함수 안에서만 접근 가능한지, 언제 메모리에서 해제 되는지를 결정하는 것이 스코프 입니다.
스코프의 개념과 필요성
- 스코프는 변수의 접근 범위를 정의 합니다. 즉 어디에서 어떤 변수에 접근할 수 있는지 결정합니다.
- 스코프는 전역과 지역 스코프로 나뉩니다.
- 전역 스코프의 변수는 코드 어디에서나 접근이 가능합니다.
- 지역 스코프의 변수는 선언된 함수나 블록 내에서만 접근이 가능합니다.
- 스코프는 변수의 생명 주기를 관리합니다. 지역스코프의 변수는 해당 스코프가 종료되면 메모리에서 삭제합니다.
- 스코프를 통해서 변수의 사용 범위를 제한하면 코드의 안정성을 높일 수 있습니다.
- 스코프는 변수의 가시성과 생명 주기를 제어하므로, 메모리 관리와 코드의 가독성, 유지 보수성을 향상시킵니다.
// 전역 변수 선언
let globalVar = "I'm a global variable";
function myFunction() {
// 지역 변수 선언
var localVar = "I'm a local variable";
// 함수 내부에서 전역 변수와 지역 변수 모두 접근 가능
console.log(globalVar); // 출력: I'm a global variable
console.log(localVar); // 출력: I'm a local variable
}
// 함수 호출
myFunction();
// 전역 스코프에서는 전역 변수 접근 가능
console.log(globalVar); // 출력: I'm a global variable
// 전역 스코프에서 지역 변수 접근 불가, 에러 발생
console.log(localVar); // Uncaught ReferenceError: localVar is not defined
스코프의종류
전역 스코프(Global Scope)
- 전역 변수는 코드 전체에서 접근 가능하다
- 어떤 위치에서든 전역 변수의 값을 읽고 변경할 수 있다.
- 전역 변수는 예기치 않게 변경 될 수 있어 예상치 못한 결과를 초래할 수 있다.
- 따라서 전역 변수의 사용은 주의가 필요하며, 필요한 경우에만 사용해야한다.
// 전역 변수 선언
let globalVar = "I'm a global variable";
function changeGlobalVar() {
// 전역 변수 변경
globalVar = "I've been changed";
}
// 함수 호출 전, 전역 변수 출력
console.log(globalVar); // 출력: I'm a global variable
// 전역 변수 변경 함수 호출
changeGlobalVar();
// 함수 호출 후, 전역 변수 출력
console.log(globalVar); // 출력: I've been changed
지역 스코프(Local Scope)
- 지역 스코프는 특정 부분 내에서만 접근 가능한 변수를 선언합니다.
- 지역 변수는 선언된 부분 밖에서는 접근이 불가능합니다.
- 지역 변수는 해당 스코프가 종료되면 메모리에서 해제되어 효율적인 메모리 관리를 돕습니다
- 지역 스코프는 변수의 이름의 충돌 방지, 코드의 복잡성을 관리하는데 도움을 줍니다.
function myFunction() {
// 지역 변수 선언
let localVar = "I'm a local variable";
console.log(localVar); // 출력: I'm a local variable
}
myFunction();
// 지역 변수는 함수 밖에서 접근 불가능
console.log(localVar); // Uncaught ReferenceError: localVar is not defined
참고자료
https://www.w3schools.com/js/default.asp
https://developer.mozilla.org/ko/docs/Web/JavaScript
https://www.geeksforgeeks.org/javascript/?ref=dhm
https://roadmap.sh/javascript
반응형