본문 바로가기
javascript

함수의 전역스코프, 지역스코프

by momomoo 2024. 5. 1.
let 전역변수 = '전역 스코프';

function 함수1() {
    let 지역변수1 = '함수1 내의 변수';
    
    function 함수2() {
        let 지역변수2 = '함수2 내의 변수';
        console.log(전역변수); // 전역 변수에 접근
        console.log(지역변수1); // 함수1 내의 변수에 접근
        console.log(지역변수2); // 함수2 내의 변수에 접근
    }
    
    함수2(); // 함수2 호출
}

함수1(); // 함수1 호출

console.log(전역변수); // 전역 변수에 접근
console.log(지역변수1); // ReferenceError: 지역변수1 is not defined 오류 발생
console.log(지역변수2); // ReferenceError: 지역변수2 is not defined 오류 발생

 

전역 스코프(Global Scope)는 변수나 함수가 프로그램의 어느 곳에서나 접근할 수 있는 범위

 

 

전역변수는 전역 스코프에 선언되어 있고,

함수1 내에 지역변수1이, 그 아래에 함수2가 각각 지역 스코프에 선언되어 있습니다.

함수 1 내부에서는 전역 변수인 전역변수와 지역변수1에 접근할 수 있습니다.

함수 2 내부에서는 전역 변수인 전역변수, 그리고 함수 1 내부에서 선언된 지역변수1과 지역변수2에 접근할 수 있습니다.

그러나 전역 스코프 외부에서는 지역 변수인 지역변수1과 지역변수2에 접근할 수 없습니다.

이는 변수의 스코프가 해당 변수가 선언된 범위 내에서만 유효하기 때문입니다.

따라서 전역 스코프 외부에서는 지역 변수에 접근할 수 없으며, ReferenceError가 발생합니다.

 

 

 

 

 

함수내에서 선언된 변수, 함수는 무조건 지역스코프라고 부르고

지역스코프는 그 내부에서만 호출 가능하지 외부에서는 가능하지 않는다

 

 

 

 

함수 내부에서 외부에 정의된 함수를 호출하는 것은 가능하지만,

외부에서 내부에 정의된 함수를 호출하는 것은 일반적으로 불가능

 

 

-가능-

function 외부함수() {
    let 외부변수 = '외부 변수';

    function 내부함수() {
        console.log(외부변수); // 외부 변수에 접근
    }

    내부함수(); // 내부 함수 호출
}

외부함수(); // 외부 함수 호출

'javascript' 카테고리의 다른 글

switch 예시, 유용하게 쓰이는 상황  (1) 2024.05.01
단일 표현식  (2) 2024.05.01
바닐라자바스크립트 프로젝트 예시 찾기  (0) 2024.05.01
제이쿼리 CDN  (0) 2024.04.30
멤버 접근 연산자  (0) 2024.04.30