[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 모범 답안