새소식

프론트엔드/javascript

스코프 scope

  • -

안녕하세요 lika-7입니다

이번시간에는 스코프가 무엇인지 정리하겠습니다

스코프란

💡
스코프(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은 외부에서 직접 접근할 수 없음

위의 코드에서 localFunctionouterFunction 내에서 정의되었으며, outerFunction 내부에서만 호출할 수 있습니다. 외부에서 localFunction에 직접 접근하려고 하면 오류가 발생 합니다.

정리

지역 스코프는 지역 함수를 사용해 지정 할 수 있습니다. 스코프를 이용해 변수와 함수의 유효 범위를 정의 합니다.
필자는 “객체”또한 함수와 마찬가지로 스코프 범위라고 착각하였습니다. 스코프는 함수가 호출될 때 생성됨으로 혼동하지 맙시다

'프론트엔드 > javascript' 카테고리의 다른 글

Shorthand Property Names/Property Value Shorthand 패턴  (0) 2023.10.04
Document 객체  (1) 2023.10.04
String.prototype.trim()  (0) 2023.10.03
프로퍼티 정의 object.defineProperty  (0) 2023.10.03
this  (0) 2023.09.18
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.