스코프와 클로저

Ryurbsgks·2021년 10월 24일
0

JavaScript(JS)

목록 보기
11/15
post-thumbnail

스코프(Scope)

스코프란 변수에 접근할 수 있는 범위(변수의 유효범위)이다.

JS에서 스코프는 전역(global) 스코프, 지역(local) 스코프 2가지로 분류한다.

전역 스코프는 말 그대로 전역에서 선언되어 있어 어느 곳에서든지 해당 변수에 접근할 수 있다.

지역 스코프는 해당 지역에서만 접근할 수 있어 지역을 벗어난 곳에선 접근할수 없다.

스코프의 범위

스코프의 범위는 블록(중괄호) 또는 함수에 의해 나누어지며 이 범위를 스코프라고 부른다.

스코프의 규칙

스코프는 중첩이 가능하다.

바깥쪽 스코프에서 선언한 변수는 안쪽 스코프에서 사용이 가능하다.

안쪽에서 선언한 변수는 바깥쪽 스코프에서 사용할 수 없다.

가장 바깥쪽의 스코프는 전역 스코프라고 부른다.(전역이 아닌 다른 스코프는 전부 지역 스코프이다)

지역 변수는 전역 변수보다 우선 순위를 가진다.

스코프의 종류

스코프의 종류에는 블록(block) 스코프, 함수(function) 스코프가 존재한다.

블록 스코프는 블록을 기준으로 범위가 구분 된다.
함수 스코프는 function 키워드가 등장하는 함수 선언식 및 함수 표현식을 함수 스코프라고 한다. (화살표 함수는 블록 스코프로 취급된다)

클로저(Closure)

클로저란 함수와 함수가 선언된 어휘적 환경의 조합을 말한다.

클로저 함수

클로저 함수는 함수를 리턴하는 함수이며 내부 함수는 외부 함수에 선언된 변수에 접근이 가능하다.

클로저 함수의 장점은 데이터를 보존하는 함수라는 것이다.

일반적인 함수는 함수 실행이 끝나면 함수 내부의 변수를 사용할 수 없지만 클로저 함수는 외부 함수의 실행이 끝나더라도 외부 함수 내 변수가 메모리 상에 저장되기 때문에 변수 사용이 가능하다.

profile
코딩도전기

0개의 댓글