상식닷컴
로그인
가입하기
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 <a href='https://sangseek.com/sangseeks/variable/ko'>variable</a>"; function showGlobalVar() { console.log(globalVar); } showGlobalVar(); // "I am a global variable" ``` 위의 코드에서 `globalVar`는 전역 스코프에 정의된 변수로, `showGlobalVar` 함수 내에서도 접근이 가능합니다. 2. 지역 스코프(Local Scope) 지역 스코프는 함수 또는 블록 내에서 정의된 변수와 함수가 포함되는 스코프입니다. 지역 스코프에서 정의된 변수는 해당 함수 또는 블록 내에서만 접근할 수 있습니다. 예를 들어: ```javascript function myFunction() { let localVar = "I am a local variable"; console.log(localVar); // "I am a local variable" } myFunction(); console.log(localVar); // ReferenceError: localVar is not defined ``` 위의 코드에서 `localVar`는 `myFunction` 내에서만 접근 가능하며, 함수 외부에서는 접근할 수 없습니다. 3. <a href='https://sangseek.com/sangseeks/블록 스코프/ko'>블록 스코프</a>(Block Scope) ES6(<a href='https://sangseek.com/sangseeks/ECMAScript 2015/ko'>ECMAScript 2015</a>)부터 도입된 `let`과 `const` 키워드를 사용하여 블록 스코프를 정의할 수 있습니다. 블록 스코프는 `{}` 중괄호로 감싸진 코드 블록 내에서만 유효한 변수를 정의합니다. 예를 들어: ```javascript if (true) { let blockVar = "I am a block s<a href='https://sangseek.com/sangseeks/coped/ko'>coped</a> variable"; console.log(blockVar); // "I am a block scoped variable" } console.log(blockVar); // ReferenceError: blockVar is not defined ``` 위의 예제에서 `blockVar`는 `if` 블록 내에서만 접근 가능하며, 블록 외부에서는 접근할 수 없습니다. 4. 스코프 체인(Scope Chain) 자바스크립트는 스코프 체인을 통해 변수를 찾습니다. 함수가 호출될 때, 자바스크립트는 해당 함수의 지역 스코프에서 변수를 찾고, 만약 찾지 못하면 외부 스코프를 검색합니다. 이 과정은 최상위 전역 스코프에 도달할 때까지 계속됩니다. 이를 통해 중첩된 함수에서도 외부 함수의 변수에 접근할 수 있습니다. ```javascript let outerVar = "I am an outer variable"; function outerFunction() { let innerVar = "I am an inner variable"; function innerFunction() { console.log(outerVar); // "I am an outer variable" console.log(innerVar); // "I am an inner variable" } innerFunction(); } outerFunction(); ``` 5. 클로저(Closure) 클로저는 함수와 그 함수가 선언된 스코프의 조합을 의미합니다. 클로저는 외부 함수의 변수에 접근할 수 있는 <a href='https://sangseek.com/sangseeks/내부 함수/ko'>내부 함수</a>를 생성할 수 있게 해줍니다. 클로저는 데이터 은닉과 상태 유지에 유용하게 사용됩니다. ```javascript function makeCounter() { let count = 0; return function() { count += 1; 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순위입니다.
수정하기
취소하기