상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 자바스크립트에서 스코프(Scope)란 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>스크립트에서 스코프(Scope)는 변수와 함수의 접근 가능성을 결정하는 영역을 의미합니다. 스코프는 코드의 특정 부분에서 변수가 어떻게 정의되고, 어떻게 접근될 수 있는지를 규정합니다. 스코프는 주로 두 가지 유형으로 나눌 수 있습니다: <a href='https://sangseek.com/sangseeks/전역 스코프/ko'>전역 스코프</a>(Global Scope)와 <a href='https://sangseek.com/sangseeks/지역 스코프/ko'>지역 스코프</a>(Local Scope). 1. 전역 스코프 (Global Scope) 전역 스코프는 코드의 최상위에서 정의된 변수와 함수가 포함됩니다. 전역 스코프에서 정의된 변수는 프로그램의 어느 곳에서나 접근할 수 있습니다. 예를 들어: ```javascript let globalVar = "I am a global variable"; function showGlobalVar() { console.log(globalVar); } showGlobalVar(); // "I am a global variable" ``` 위의 코드에서 `globalVar`는 전역 변수로, `showGlobalVar` 함수 내에서도 접근할 수 있습니다. 2. 지역 스코프 (Local Scope) 지역 스코프는 함수 내에서 정의된 변수와 함수가 포함됩니다. 이러한 변수는 해당 함수 내에서만 유효하며, 함수 외부에서는 접근할 수 없습니다. 예를 들어: ```javascript function showLocalVar() { let localVar = "I am a local variable"; console.log(localVar); } showLocalVar(); // "I am a local variable" console.log(localVar); // ReferenceError: localVar is not defined ``` 위의 코드에서 `localVar`는 `showLocalVar` 함수 내에서만 유효하며, 함수 외부에서는 접근할 수 없습니다. 3. 블록 스코프 (<a href='https://sangseek.com/sangseeks/Bloc/ko'>Bloc</a>k Scope) ES6(ECMAScript 2015)부터 도입된 `let`과 `const` 키워드를 사용하면 블록 스코프를 생성할 수 있습니다. 블록 스코프는 중괄호 `{}`로 둘러싸인 코드 블록 내에서만 유효한 변수를 정의할 수 있게 해줍니다. 예를 들어: ```javascript if (true) { let blockVar = "I am a block variable"; console.log(blockVar); // "I am a block variable" } console.log(blockVar); // ReferenceError: blockVar is not defined ``` 위의 코드에서 `blockVar`는 `if` 블록 내에서만 유효하며, 블록 외부에서는 접근할 수 없습니다. 4. <a href='https://sangseek.com/sangseeks/스코프 체인/ko'>스코프 체인</a> (Scope Chain) 자바스크립트는 스코프 체인(Scope Chain)이라는 개념을 사용하여 변수를 찾습니다. 이는 현재 스코프에서 변수를 찾고, 만약 찾지 못하면 상위 스코프(부모 스코프)로 올라가서 변수를 찾는 방식입니다. 이 과정을 반복하여 최종적으로 전역 스코프까지 올라가게 됩니다. 예를 들어: ```javascript let outerVar = "I am an outer variable"; function outerFunction() { let innerVar = "I am an inner variable"; function innerFunction() { console.log(innerVar); // "I am an inner variable" console.log(outerVar); // "I am an outer variable" } innerFunction(); } outerFunction(); ``` 위의 코드에서 `innerFunction`은 `innerVar`와 `outerVar` 모두에 접근할 수 있습니다. 이는 스코프 체인 덕분입니다. 5. 클로저 (Closure) 스코프의 개념과 밀접하게 관련된 또 다른 중요한 개념은 클로저(Closure)입니다. 클로저는 함수가 자신의 외부 스코프에 있는 변수에 접근할 수 있는 기능을 말합니다. 클로저는 주로 함수가 반환된 후에도 외부 변수를 기억하는 데 사용됩니다. 예를 들어: ```javascript function makeCounter() { let count = 0; return function() { count++; return count; }; } const counter = makeCounter(); console.log(counter()); // 1 console.log(counter()); // 2 console.log(counter()); // 3 ``` 위의 코드에서 `makeCounter` 함수는 `count` 변수를 클로저로 캡슐화하여, 반환된 함수가 호출될 때마다 `count`의 값을 증가시킬 수 있습니다. 결론 자바스크립트의 스코프는 변수와 함수의 접근성을 결정하는 중요한 개념입니다. 전역 스코프, 지역 스코프, 블록 스코프 등 다양한 스코프 유형이 있으며, 스코프 체인과 클로저와 같은 개념을 통해 자바스크립트의 <a href='https://sangseek.com/sangseeks/변수 관리/ko'>변수 관리</a>와 함수의 동작 방식을 이해할 수 있습니다. 이러한 스코프 개념을 잘 이해하면 자바스크립트 코드를 더 효과적으로 작성하고 디버깅할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기