자바스크립트 문법
13. 스코프 // 14. 전역 변수의 문제점 // 15. let, const와 블록 레벨 스코프
자무카
2022. 9. 12. 05:55
13장: 스코프
1. 스코프란
2. 스코프의 종류 : 전역 스코프와 지역 스코프
3. 스코프 체인 : 체인에 의한 변수 / 함수 검색
4. 함수 레벨 스코프
5. 렉시컬 스코프(=정적/static 스코프) : 어디서 정의했는지에 따라 상위 스코프 결정
함수를 어디에 호출했는지는 상관없다. 함수가 정의(생성)되면서, 상위 스코프를 기억한다.(( 함수의 위치))
var x = 1;
function foo() {
var x = 10;
bar(); // bar()는 전역인 1 일까, 지역인 10일까.
//bar가 정의된 자리의 범위(스코프)를 기억중. --> 그래서, x 는 1
console.log(x);
}
function bar(){
console.log(x); // 전역인 1
}
foo();
bar();
14장: 전역 변수의 문제점
1.변수의 생명주기 : 지역 변수와 전역 변수
일반적으로 함수와 함수 내 지역변수의 생명주기는 일치하지만, 누군가 메모리 공간을 참조하고 있으면, 해제되지 않고 확보된 상태로 남아있는데, 스코프도, 누군가 스코프를 참조중이면, 소멸되지 않는다.
2. 전역 변수의 문제점
3. 전역 변수의 사용을 억제하는 방법
- 즉시 실행 함수
(function() {
var foo = 10;
}());
- 네임스페이스 객체 : 변수를 프로퍼티로 추가
var MYAPP = {}; // 전역 네임 스페이스 객체
MYAPP.name = 'Lee'; // 전역 변수처럼 사용하고 싶은 변수를 <<프로퍼티>>로 추가
console.log(MYAPP.name); // Lee
// 2. 계층 구성
MYAPP.person = {
name: 'Lee',
address: 'Seoul',
};
console.log(MYAPP.person.name);
- 모듈 패턴 : 클로저
- ES6 모듈 : ES6 모듈, Webpack, Babel -> ES.NEXT 개발환경 구축
15장: let, const 키워드와 블록 레벨 스코프
1. var 문제점
- 변수 중복 선언 허용
- 함수 레벨 스코프
- 변수 호이스팅
2. let
- 변수 중복 선언 금지
- 블록 레벨 스코프
- 변수 호이스팅
- 전역 객체와 let
3. const 키워드
- 선언과 초기화
- 재할당 금지
- 상수
- const 키워드와 객체