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 |