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 |