본문 바로가기
Script/JavaScript

[JavaScript] Chapter 10. 스코프

by song.ift 2022. 12. 13.

스코프 (Scope)

  • 유효 범위
  • 동일한 식별자 충돌 방지
  • 변수나 함수 선언 위치에 따라 스코프 지님

 

  1.  전역 스코프 (global Scope)
  2.  함수 레벨 스코프 (function-level Scope)
  3.  블록 레벨 스코프 (block-level Scope)
  var let const
글로벌 스코프 O O O
함수 레벨 스코프 O O O
블록 레벨 스코프 X O O
재선언 O X X
재할당 O O X

 

함수 레벨 스코프 (function-level scope)

  • 함수 안에 선언한 변수 => 지역 변수
  • 함수 외부에서 해당 변수 호출 시 오류
var strVar = "전역 스코프";
let strLet = "전역 스코프";
const strConst = "전역 스코프";

function fnScopeTest() {
    var strVar = "지역 스코프";   // 재선언 및 재할당
    let strLet = "지역 스코프";
    const strConst = "지역 스코프";

    console.log(strVar); // 지역 스코프
    console.log(strLet); // 지역 스코프
    console.log(strConst); // 지역 스코프
}

fnScopeTest();
console.log(strVar); // 전역 스코프
console.log(strLet); // 전역 스코프
console.log(strConst); // 전역 스코프

 

블록 레벨 스코프 (block-level scope)

  • 블록 내에서 접근 가능한 스코프
  • { ··· }
{
    var strVar = "지역 스코프";
    let strLet = "지역 스코프";
    const strConst = "지역 스코프";
}

// 블록 밖에서 문제없이 값이 출력된다.
// var는 블록 레벨이 아닌 함수 레벨 스코프인 큰 영역을 가진다.
console.log(strVar); // 지역 스코프

// ReferenceError가 뜨며 값이 출력되지 않는다
// let, const는 블록 안에 선언된 것에 대해서만 접근할 수 있다.
console.log(strLet);
console.log(strConst);

'Script > JavaScript' 카테고리의 다른 글

[JavaScript] Chapter 12. IIFE  (0) 2022.12.14
[JavaScript] Chapter 11. 호이스팅  (0) 2022.12.14
[JavaScript] Chapter 09. DOM  (0) 2022.12.12
[JavaScript] Chapter 08. 객체  (0) 2022.12.10
[JavaScript] Chapter 07. 화살표 함수  (0) 2022.12.10

댓글