FrontEngineer JungBam
스코프, 섀도잉 본문
스코프
자바스크립트에서 선언된 변수가 존재하는 범위를 이야기함.
(전역 스코프 - 렉시컬 스코프)
섀도잉
{
①
{
②
}
}
위와 같이 단락이 나뉘어졌을 때 ①의 렉시컬 스코프와 ②의 렉시컬 스코프가 존재하는데 ②의 렉시컬스코프에서 어떠한 변수를 호출하면 자바스크립트는 ②의 렉시컬 스코프에서 해당 변수를 찾은 뒤에 없으면 ①의 스코프에서 해당 변수를 찾는다.
그렇다면 ①과 ②에서 각각 값이 주어진 변수가 있다면 ②에서 그 변수를 부른다면 당연히 ②의 렉시컬 스코프에서 할당된 값이 불려지게 되는데 이렇게 내부 변수가 위부 변수를 가리는 현상을 섀도잉이라고 한다.
변수의 선언으로 인해 충돌하는 것을 해결하는 방법으로 책에서 제시한 방법은 크게 한가지임.
결국에는 블록 스코프, 즉 나만의 렉시컬 스코프를 만들어서 해결하는 방법을 제시함.
1. {} 블록스코프를 통해 그 변수가 존재하는 범위를 지정해서 그 안에서 로직을 구현
2. 즉시 호출 함수를 통해 문제 해결
반응형
'자바스크립트 개념' 카테고리의 다른 글
깊은 복사와 얕은 복사 (0) | 2022.11.18 |
---|---|
JavaScript의 타입 / 자료구조 (0) | 2022.11.18 |
혼공스(챕터5) 별도정리 : 타이머 함수 (0) | 2022.11.12 |
혼공스(챕터5) 함수 (0) | 2022.11.11 |
혼공스(챕터4) 반복문 (0) | 2022.11.10 |
Comments