스코프(Scope)

2022. 9. 22. 21:41프로그래밍 언어/JavaScript

스코프(Scope)

스코프는 '범위'라는 뜻으로, JavaScript에서는 변수에 접근할 수 있는 범위를 뜻한다.

스코프에는 전역 스코프(Globap Scope)와 지역 스코프(Local Scope)가 있다.

 

 

 

전역 스코프(Global Scope)

변수가 함수 바깥이나 중괄호({}) 바깥인 전역에 선언되었다면 전역 스코프에 정의된 것이다.

전역 스코프는 어느 곳에서든지 해당 변수에 접근할 수 있다.

 

 

지역 스코프(Local Scope)

전역 스코프와 반대로, 변수가 함수 안이나 중괄호({}) 안에 선언된 경우 지역 스코프에 정의된 것이다.

지역 스코프는 해당 지역에서만 접근할 수 있다. 해당 지역을 벗어난 바깥에서는 접근이 불가능하다.

JavaScript에는 블록 스코프, 함수 스코프 두 개의 지역 변수가 있다.

 

 

블록 스코프 (Block Scope)

블록이란 중괄호({})로 둘러싸인 부분을 말한다.

ES2015(ES6)에서 let/const 키워드가 추가되면서 함수가 아닌 일반 블록에서도 지역 변수를 선언할 수 있게 됐다.

중괄호({})안에서 let 또는 const으로 변수를 선언하면, 해당 변수는 해당 블록 내에서만 접근 가능하다.

 

 

함수 스코프(Function Scope)

함수를 선언할 때에는 중괄호({})를 사용하기 때문에 함수를 선언할 때 마다 새로운 스코프를 생성한다.

따라서 블록 스코프는 함수 스코프의 서브셋(subset: 부분집합)이다. (Block Scope ⊆ Function Scope)

함수 스코프 안에 선언된 변수는 해당 함수 안에서만 접근이 가능하다.

 

 

 


Reference

 

 

'프로그래밍 언어 > JavaScript' 카테고리의 다른 글

이벤트 전달 방식  (0) 2022.09.26
클로저(Closure)  (0) 2022.09.22
호이스팅(Hoisting)  (0) 2022.09.22
TypeScript 타입 어디까지 지정해줘야 할까  (0) 2022.08.13
location.href와 location.replace의 차이  (0) 2021.01.18