목차

[PART I 시작하기] CHAPTER 1 자바스크립트 _1.1 책에 대하여 _1.2 자바스크립트 이름의 유래 _1.3 명세서 _1.4 JS의 다양한 얼굴 _1.5 하위 호환성과 상위 호환성 _1.6 인터프리터 이해하기 _1.7 엄격 모드 _1.8 정리 CHAPTER 2 자바스크립트 조망하기 _2.1 파일은 프로그램입니다 _2.2 값 _2.3 변수 선언과 사용 _2.4 함수 _2.5 비교 _2.6 코드 구조화 패턴 _2.7 더 깊은 토끼 굴로 CHAPTER 3 자바스크립트 뿌리 파헤치기 _3.1 이터레이션 _3.2 클로저 _3.3 this 키워드 _3.4 프로토타입 _3.5 ‘왜?’라고 질문하기 CHAPTER 4 더 큰 그림 _4.1 첫 번째 기둥: 스코프와 클로저 _4.2 두 번째 기둥: 프로토타입 _4.3 세 번째 기둥: 타입과 타입 강제 변환 _4.4 JS의 본질 따르기 _4.5 학습 순서 APPENDIX A 더 멀리 나가기 _A.1 값 vs. 참조 _A.2 다양한 형태의 함수 _A.3 강제 조건부 비교 _A.4 프로토타입 클래스 APPENDIX B 연습만이 살길입니다! _B.1 비교 연습하기 _B.2 클로저 연습하기 _B.3 프로토타입 연습하기 _B.4 모범 답안 [PART II 스코프와 클로저] CHAPTER 1 스코프 _1.1 책에 대하여 _1.2 컴파일 vs. 인터프리트 _1.3 코드 컴파일 _1.4 컴파일러체 _1.5 런타임에 스코프 변경하기 _1.6 렉시컬 스코프 CHAPTER 2 렉시컬 스코프 _2.1 구슬과 양동이 _2.2 JS 엔진 구성원 간의 대화 _2.3 중첩 스코프 _2.4 정리 CHAPTER 3 스코프 체인 _3.1 탐색의 진실 _3.2 변수 섀도잉 _3.3 함수 이름 스코프 _3.4 화살표 함수 _3.5 정리 CHAPTER 4 전역 스코프 _4.1 전역 스코프를 배워야 하는 이유 _4.2 전역 스코프의 위치 _4.3 globalThis _4.4 정리 CHAPTER 5 변수의 비밀 생명주기 _5.1 변수 사용 가능 시점 _5.2 호이스팅: 비유일 뿐입니다 _5.3 중복 선언 처리하기 _5.4 초기화되지 않은 변수와 TDZ _5.5 정리 CHAPTER 6 스코프 노출 제한 _6.1 최소 노출의 원칙(POLE) _6.2 일반(함수) 스코프에 숨기기 _6.3 블록으로 스코프 지정 _6.4 블록 내 함수 선언 _6.5 정리 CHAPTER 7 클로저 사용법 _7.1 클로저 관찰하기 _7.2 클로저 생명주기와 가비지 컬렉션 _7.3 다른 관점 _7.4 클로저를 사용하는 이유 _7.5 정리 CHAPTER 8 모듈 패턴 _8.1 캡슐화와 최소 노출의 원칙(POLE) _8.2 모듈이란 _8.3 Node.js의 CommonJS 모듈 _8.4 최신 ES 모듈 _8.5 정리 APPENDIX A 한 걸음 더 _A.1 암시적 스코프 _A.2 익명 함수 vs. 기명 함수 _A.3 호이스팅: 함수와 변수 _A.4 var에 대한 변론 _A.5 TDZ _A.6 동기 콜백도 여전히 클로저일까? _A.7 클래식 모듈 변형 APPENDIX B 연습 문제 _B.1 구슬과 양동이 _B.2 클로저 1 _B.3 클로저 2 _B.4 클로저 3 _B.5 모듈 _B.6 모범 답안