JavaScript - 스코프

lsjoon·2022년 12월 24일
0

JavaScript

목록 보기
9/32

Scope


변수에 접근할 수 있는 범위

1. 전역 스코프 (Global)


어디에서든 해당 변수에 접근 가능 = 전역 변수


2. 지역 스코프 (Local)


한정적인 범위에서 해당 변수에 접근 가능 = 지역 변수
지역 스코프에는 함수 스코프블록 스코프가 존재

A. 함수 스코프


  • 함수가 선언되면, 하나의 스코프(접근 범위)가 발생
  • 함수 스코프는 함수에서 선언한 변수는 해당 함수 내에서만 접근 가능하다는 것을 의미
  • 함수 외부에서 호출 시 undefined 에러 발생
// 1. 함수 내부에서 선언
function greet() {
  var student = 'hello';
}
console.log(student);		// Uncaught ReferenceError: student is not defined
// 2. var로 선언하면 블록에 의한 범위 제한이 없음
if (true) {
  var teacher = 'bye';
}
console.log(teacher)  		// bye

// 3. const, let은 블록 스코프를 따름
if (true) {
  const teacher = 'bye';
}
console.log(teacher)      	// ReferenceError: teacher is not defined

B. 블록 스코프


  • 블록 ( { } ) 내부에서 선언된 변수는 해당 블록에서만 접근 가능
  • letconst 로 선언된 변수가 블록 스코프 방식을 따름
// var로 선언된 변수는 블록 스코프 밖에서 접근 가능
function counter() {
  for (var i=0; i<9; i++) {
    ...
  }
  console.log(i)
}

hello();  // 9


// let, const는 블록 스코프를 따르므로 블록 밖에서는 변수 접근이 불가
function counter() {
  for (let i=0; i<9; i++) {
    ...
  }
  console.log(i)
}
  
hello();  //ReferenceError: i is not defined
profile
중요한 것은 꺾여도 그냥 하는 마음

0개의 댓글