JS block, scope, variable

김익현·2022년 6월 25일
0

wecode

목록 보기
10/35
post-thumbnail

이해하기 쉬운 JS Scope

제가 공부하면서 이해한 내용이며 절대로 정답이 아닙니다.

개인적인 의견이며 이해를 돕기위한 예시를 들었습니다.

scope : ‘범위’

scope란 범위를 지정하는 것이라고 이해하였습니다.
나중에 나오겠지만 블록과 글로벌이 나오게 되는데 블록에서는 글로벌에 있는 변수를 가져올 수 있지만 글로벌에서는 블록에 있는 변수는 가져올 수 없습니다.

block : ‘그룹’

block 이란 크게는 한국 안에 있는 대기업, 중소기업 작게는 우리 집, 조기축구회 같은 소규모의 모임이 있는 것처럼 블록은 크든 작든, 그룹이라고 이해하였습니다.

variable : ‘장소(place), 물건’

variable란 장소가 될 수도 있고 물건이 될 수도 있고 용도에 맞게 변하는 메타몽같이 자유롭게 변하는 성질을 가진것이라고 이해하였습니다.

global scope : ‘한국, 회사, 우리집’

global scope란 기준을 잡는 범위라고 이해하였습니다.
우리나라를 기준으로 잡으면 우리나라 모든 사람이 범위 안에 들어가고, 지구를 기준으로 잡으면 모든 지구인이 범위 안에 들어가는것처럼 자바스크립트에서는

자바스크립트에서는 내가 구현하고 싶은 기능의 최상단이라 생각하면 좋을것 같습니다. 내가 구현하고 싶은 기능이 크면 클수록 범위가 넓어지는것이고 작으면 작을수록 범위가 좁아지는것이라고 생각됩니다.

global variable : ‘공중 화장실 , 회사 회의실, 우리집 거실’

global variable란 기준을 잡은 범위의 모든 사람들 접근하고 사용할 수 있는 장소 및 물건이라고 이해하였습니다.
예를 들어 기준이 한국이라고 했을 때 한국 사람들 전부 공중 화장실을 이용할 수 있지만 회사 회의실 및 우리 집 거실은 이용불가한 것처럼 기준에 따라 달라집니다.
기준이 회사면 회사 회의실도 전역변수가 될 수 있습니다.

자바스크립트에서는 위에서 잡은 기준의 최상단에서 각 블록안에서 재선언도 가능하고 사용도 가능한 변수,상수,함수 가있습니다.

block scope : ‘회사, 조기축구회,집’

block scope란 글로벌 스코프 안에 들어가는 작든 크든 모임이라고 이해하였습니다.
만약 글로벌 스코프가 지구라면 블록 스코프에는 한국이 들어갈 수도 있고 한국 안에 있는 작은 도시도 블록 스코프가 될 수 있습니다.

자바스크립트에서는 위에서 선언된 함수,클래스,변수 안에서 선언된 함수,변수 등이 있습니다..

local variable : ‘회사 사무실, 우리집 화장실’

local variable 란 블록 스코프 안에 있는 구성원들만 접근하고 사용할 수 있는 장소 및 물건이라고 이해하였습니다.
위에서 간단히 설명하였지만 기준이 한국이라고 했을 때 공공화장실은 전부다 사용 가능하지만 회사 사무실이나, 우리 집 화장실은 그 그룹 안에 있는 사람들만 사용 가능합니다.

자바스크립트에서는 블록스코프에서는 전역변수에 접근이 가능하고 수정이 가능하지만, 글로벌 스코프에서는 지역변수에 접근이 안됩니다.

global namespace : ‘회사 건물, 개인 사물함’

global namespace란 위에 정리한 global variable을 보관하는 장소로 이해하였습니다.
기준을 회사로 잡았을 때 회사원들이 사용 가능하도록 휴지도 놓고 회의실도 만들고 합니다. 작게 기준을 잡은 경우 개인 사물함도 내 물건을 보관하는 global namespace가 될 수 있습니다.

자바스크립트에서는 전역변수가 선언되면 글로벌 네임스페이스에 보관하여 모두가 사용할수있도록 저장해둡니다.

scope pollution : ‘공중화장실 문이 고장남, 공공도서관 책이 사라짐’

scope pollution 이란 물건을 너무 많이 사용하다 보니 물건이 고장 난다거나 관리가 잘 이루어지지 않아 없어지는 경우라고 이해하였습니다.

자바스크립트에서는 전역변수를 각 지역 스코프에 가져와 재선언을 할 수가 있는데 너무 많이 재선언 하다 보면 제 기능을 상실한다거나, 오류가 날 수 있습니다.

profile
놀땐 화끈하게 놀고, 할땐 부끄럽지않게 확실하게 하자!!

1개의 댓글

comment-user-thumbnail
2022년 6월 27일

박수 드립니다👍🏻👏🏻👏🏻👏🏻

답글 달기