티스토리 뷰
1. 스코프 (scope)
function plus(x, y){
console.log(x, y);
return x + y;
}
console.log(x, y); // ReferenceError
스코프는 매개변수를 참조할 수 있는 유효범위이다.
식별자는 자신이 선언된 위치에 의해
다른 코드가 식별자를 참조할 수 있는
유효한 범위, 참조 가능 범위가 결정된다.
변수 이름, 함수 이름, 클래스 이름 등
function temp(){
var a = 3;
}
console.log(a); // ReferenceError
즉 식별자가 유효한 범위이기도 하다.
따라서 식별자를 검색할 때 사용하는 규칙이라고 생각할 수도 있다.
[JS] 스코프 체인
1. 정의 스코프는 함수의 중첩에 의해 계층적 구조를 갖는다. 다시 말해 중첩 함수의 지역 스코프는 중첩 함수를 갖는 외부 함수의 지역 스코프와 계층적 구조를 갖는다. 이때 외부 함수의 지역
404minda.tistory.com
함수 검색 참조
실행 컨텍스트와 관련이 깊기 때문에
현재 실행되는 컨텍스트라고 판단할 수도 있다.
컨텍스트는 값과 표현식이 참조될 수 있음을 의미하며
해당 스코프 내에 있지 않다면 참조 불가하다.
계층적인 구조를 갖기 때문에
하위 스코프는 상위 스코프에 접근 가능하다.
2. 필요성
식별자는 값을 구별하므로 유일해야한다.
하나의 값은 유일한 식별자에 연결되어야한다.
만약
스코프가 존재하지 않는다면
같은 이름을 갖는 변수가 충돌을 일으키기 때문에
프로그램에서 한 번 밖에 사용할 수 없다.
다시 말해,
좋은 이름을 한 번 밖에 사용하지 못한다.
즉 스코프는 네임 스페이스 역할을 하며
이는 하나의 폴더 안에
동일한 파일 이름이 존재할 수 없는 것과 동일하다.
3. 종류
전역과 지역으로 구분된다.
자신이 선언된 위치에 의해
유효 범위가 정해지므로
전역에서 선언했으면 전역 스코프
지역에서 선언했다면 지역 스코프다.
전역은 코드의 가장 바깥 영역이다.
전역은 전역 스코프(global scope)를 만든다.
전역 스코프를 갖는 변수는 전역 변수(global variable)이 되며
어디서든지 참조 가능하다.
지역은 함수 몸체 내부다.
지역 스코프(local scope)를 만들며 지역 변수(local variable)이 된다.
자신이 선언된 지역과 중첩 함수(하위 지역)에서만 사용 가능하다.
자신의 지역 스코프와 중첩된 하위 스코프에서만 유효
자바스크립트 엔진이 스코프 체인을 통해 변수를 검색하는 방식으로 작동한다.
'Oops, All Code! > 📝 Study Notes' 카테고리의 다른 글
[JS] 스코프 체인 (0) | 2023.01.10 |
---|---|
[JS] 실행 컨텍스트 (0) | 2023.01.09 |
[JS] 값에 의한 전달과 참조에 의한 전달 (0) | 2023.01.07 |
[JS] 원시 타입과 객체 타입의 차이 (0) | 2023.01.06 |
[JS] falsy와 truthy, 둘을 구분하는 법 (0) | 2023.01.05 |
- Total
- Today
- Yesterday
- 프로토타입
- 비즈플리마켓
- 서평
- javascript
- 도서리뷰
- 프리코스
- 카드뉴스
- 트러블슈팅
- 안성스타필드
- 프론트엔드
- 우아한테크코스
- 경험플리마켓
- 회고
- 도서추천
- js
- 대학생팝업스토어
- 책추천
- react
- 대학생플리마켓
- 플리마켓운영
- 플리마켓후기
- 타입좁히기
- 카페추천
- 어휘력
- 코딩테스트
- 소사벌
- 소사벌맛집
- 일급객체
- 어른의어휘공부
- typescript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |