자바스크립트 문법

13. 스코프 // 14. 전역 변수의 문제점 // 15. let, const와 블록 레벨 스코프

자무카 2022. 9. 12.

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 키워드와 객체

4. var vs. let vs. const

 

댓글