Study/JavaScript

[JavaScript] 스코프(Scope)란?

ujam 2022. 4. 9. 00:31
728x90
반응형

 

 

스코프(Scope)는 '범위'라는 의미를 가집니다.

JavaScript에서도 역시 '범위'라는 의미를 가지고 있습니다.

 

 

 

 

JavaScript에서 스코프는 2가지 타입이 존재합니다.

  • Global Scope (전역 스코프) - 어느 곳이든지 접근할 수 있다는 의미입니다.
  • Local Scope (지역 스코프) - 해당 지역에서만 접근할 수 있다는 의미입니다.

 

 

 

JavaScript에서는 함수를 선언하면 새로운 스코프를 생성합니다.

해당 함수 안에서 선언한 변수는 해당 함수 안에서만 접근이 가능합니다.

이것을 function-scope (함수 스코프)라고 합니다.

 

 

 

var a = 'apple';	// 전역 스코프, 전역 변수

function test() {	// 지역 스코프
  var a = 'banana';	// 지역 변수
  console.log(a);
}

test() // 'banana'
console.log(a); // 'apple'

 

 

 

전역스코프에서 a라는 변수를 apple로 선언하였고 지역 스코프에서는 a라는 변수를 banana로 선언하였습니다.

test함수를 실행해보니 지역 스코프에서 선언했던 banana가 출력되었습니다.

전역 스코프에서 a변수 로그를 찍어보니 banana가 아닌 apple이 출력되었습니다.

 

 

 

 

 

 

가능한 전역변수는 최소화 하는 것이 좋습니다.

 

1. 전역변수를 최소화 하게 되면 의도치 않은 로직에 의한 에러를 줄일 수 있습니다.

2. 전역변수를 var로 선언하는 경우는 여러가지 문제가 생깁니다.

   - 변수 선언 var 키워드는 블록 스코프를 무시합니다.

   - var로 선언하여 브라우저의 내장 기능을 사용하지 못하게 만들 수 있습니다.

 

 

 

 

 

728x90
반응형