JS는 언어의 확장성과 활용성 때문에 쉬운 언어라고 생각했습니다.
이 책을 읽고 어려워졌다는건 아니지만, 쉽게 쓸 수 있는 만큼 고려해야 하는 사항이 많다는 걸 간과했다는 사실을 깨달았습니다.
책의 저자도 얘기하는 부분이지만, 이 책이 JS의 바이블은 아닙니다.
다만 이 책에서는 자신의 개발에 대한 철학을 한 번 생각해 볼 수 있는 기회를 가질 수 있습니다.
우리는 아직 JS를 모르고 있습니다. 개발에 관한 것도요.
당신은 아직 자바스크립트를 모른다!
더욱 깊이, 제대로 이해하는 자바스크립트 핵심 개념
세계적으로 베스트셀러가 된 『You Don't Know JS』 시리즈가 2판으로 돌아왔습니다. 2판은 자바스크립트의 모든 측면을 다루고 유용한 정보를 제공하기 위해 완전히 새롭게 작성되었습니다. 이 책은 자바스크립트 핵심 개념을 깊이 다루며, 유용한 코드 패턴도 소개합니다. 또한 자바스크립트를 학습하면서 생기는 다양한 의문을 저자 특유의 독특한 시각과 재치 있는 설명으로 탐구합니다.
이 책은 『You Don't Know JS Yet』 시리즈의 첫 번째 책인 ‘시작하기’와 두 번째 책인 ‘스코프와 클로저’를 한 권으로 엮었습니다. 자바스크립트의 핵심 개념을 이해하고자 하는 분들에게 완벽한 가이드가 될 것이며, 더 깊이 파고들고 싶은 개발자에게 매우 유용할 것입니다. 여러분의 개발 실력을 한 단계 높여줄 완벽한 가이드를 손에 들고 흥미로운 자바스크립트 여정을 떠날 차례입니다.
[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 모범 답안
아는 만큼 보이는 자바스크립트, 더 깊이 있게 이해하기
자바스크립트를 배워 본 사람은 많지만, 완전히 숙달한 사람은 훨씬 적습니다. 다 안다고 생각하지만, 사실상 습관처럼 사용해온 개념이 있지 않나요? 과연 자바스크립트를 다 알고 있는 게 맞을까요? 저자 카일 심슨은 『You Don’t Know JS Yet』 시리즈를 통해 모호했던 자바스크립트 개념과 착각하기 쉽고 이해하기 어려웠던 부분을 철저하게 파고듭니다. 헷갈리거나 무심코 지나갈 법한 부분까지 한 번 더 짚어주며 훨씬 깊이 자바스크립트를 이해할 수 있게 도와줍니다. 이 책이 설명하는 자바스크립트 세계를 차근차근 따라가다 보면 여러분은 자연스럽게 자바스크립트 작동 원리와 설계 원칙을 터득하게 될 것이며, 개발자로서 가져야 할 사고방식과 관점도 정립할 수 있을 것입니다.
* 이 책은 『You Don’t Know JS Yet』 시리즈의 1권 ‘시작하기’와 2권 ‘스코프와 클로저’를 한 권의 종이책으로 엮은 것으로, 1부에서는 1권을, 2부에서는 2권의 내용을 다룹니다.
주요 내용
● 1부 시작하기
○ 자바스크립트의 진화 과정
○ 프로그램이 실제로 작동하는 방식
○ 일반적인 오해 바로잡기
○ 기본 구성 요소, 타입, 클로저, 프로토타입 소개
● 2부 스코프와 클로저
○ 렉시컬 스코프 중첩으로 변수의 스코프 노출 제한하기
○ 클로저를 통해 변수를 기억하는 함수 살펴보기
○ 프로그래밍에서 가장 중요한 코드 구성 패턴인 모듈 소개
대상 독자
● 초급에서 중/고급으로 레벨 업하고 싶은 자바스크립트 개발자
● 자바스크립트 개발 경험이 있지만 때때로 개념이 헷갈리는 개발자
● 원인 모를 자바스크립트 오류로 힘겨워하는 개발자
추천사
『You Don’t Know JS Yet』 시리즈는 도구에 숙달하고, 업무를 세심하게 처리하고, 문제 해결을 위한 적절한 방법을 선택하고자 하는 모든 소프트웨어 전문가를 위한 책입니다. (중략) 탄탄한 자바스크립트 기초는 그 어떤 프레임워크보다 여러분에게 도움을 줄 겁니다. 프레임워크는 왔다가 사라지지만 우리는 앞으로 수십 년 동안 자바스크립트로 코딩할 것이기 때문이죠. 열린 마음으로 여러분이 가진 자바스크립트에 대한 선입견에 도전하세요. 제가 그랬던 것처럼 여러분도 자바스크립트를 (아직) 모를 수 있으니까요.
브라이언 홀트, Snowflake 수석 제품 관리자
이 책을 집어 들기도 전에 저는 이미 클로저에 매료되어 있었습니다. 하지만 코드를 성공적으로 실행하는 것과 개념을 깊이 있게 탐구하는 것 사이에는 차이가 있습니다. 이 책은 제가 가지고 있던 기본적인 이해를 끌어내어 기술을 숙달할 수 있게 해줬습니다. 짧지만 유용한 지식이 촘촘하게 담겨 있는 책이라 한 페이지씩 천천히 읽어보길 추천합니다. 책이 닳아 없어지도록요.
사라 드라스너, 구글 엔지니어링 디렉터이자 핵심 웹 개발자
자바스크립트 세계로 들어갈 수 있는 훌륭한 책입니다. 자바스크립트와 관련된 모든 개념을 설명하고, 거기에 더불어 자바스크립트의 비밀과 여러분이 걸려 넘어지기 쉬운 꼼수까지 설명합니다. 자바스크립트 세계를 확실히 알고 싶은 개발자에게 이 책을 추천합니다!
릴리 로호, 아마존 독자
『You Don’t Know JS Yet』 시리즈는 자바스크립트 학습의 즐거움을 선사합니다. 자바스크립트의 큰 그림을 보여주면서도 핵심 내용은 빼먹지 않습니다. 간결하면서 포괄적인, 그리고 핵심을 관통하는 저자의 표현 방식과 철학은 여러분의 사고를 확장시킬 겁니다. 다른 시리즈도 빨리 나오면 좋겠네요.
라비 아브라함, 아마존 독자
이 책 덕분에 드디어 자바스크립트를 이해하게 되었습니다. 유능한 개발자에게도 도움이 되는 자세하고 이해하기 쉬운 내용으로 가득 차 있습니다. 자바스크립트 개발의 필독서가 되어야 합니다!
나일, 아마존 독자