변수 - 2. 스코프 (Scope)

Ⅱ. 스코프 (Scope)

1. 스코프

 - 유효한 참조 범위

 - 자바스크립트에는 함수 레벨 스코프(ex : var)와 블록 레벨 스코프(ex : let, const)가 존재

 

2. 함수 레벨 스코프 (Function-level scope)

 - var 문함수 내부에 선언된 변수만 지역변수로 한정

    ※ 지역변수 : 프로그램 변수가 선언된 영역만 접근 가능한 영역으로 취하는 변수

 - 나머지 변수는 전부 전역변수로 간주

    ※ 전역변수 : 프로그램 모든 모듈들을 변수 선언의 유효한 영역으로 취하는 변수

 - 다음 예제를 보면 abc 함수 내부에서 선언된 a 변수함수 내부에서만 참조 가능

 - 외부에서 참조할 경우, 오류가 발생

console.clear();       // 콘솔창 초기화

function abc() {
    var a = 10;        // a를 선언
    console.log(a);    // a를 출력
}

abc();                 // 10
console.log(a)         // 오류 발생(a is not defined)

 

 - if문, while문, for문 등 코드 블럭{ } 내부에서 var로 선언된 변수 전역변수로 간주하여 블럭 외부에서도 참조 가능

console.clear();       // 콘솔창 초기화

if (true) {
    var a = 10;
    console.log(a);    // 10
}
console.log(a);        // 10

 

3. 블록 레벨 스코프 (block-lever scope)

 - let, const는 함수 내부는 물론 if문, for문 같은 코드 블럭{ }에서 선언된 변수도 지역변수로 취급함

console.clear();       // 콘솔창 초기화

function abc() {
    let a = 10;
    console.log(a);    // 10
}
console.log(a)         // 오류 발생 (a is not defined)

if (true) {
    let b = 10;
    console.log(b);    // 10
}
console.log(b);        // 오류 발생 (b is not defined)

 

'Front-End Study > JavaScript' 카테고리의 다른 글

제어문 - 1. 조건문  (0) 2022.10.24
연산자  (0) 2022.10.23
자료형  (0) 2022.10.23
변수 - 1. 변수 및 변수선언  (0) 2022.10.22
자바스크립트 (Javascript)  (0) 2022.10.22