이미 소장하고 있다면 판매해 보세요.
PART I 타입과 문법
1장 타입 _1.1 타입, 그 실체를 이해하자 _1.2 내장 타입 _1.3 값은 타입을 가진다 __1.3.1 값이 없는 vs 선언되지 않은 __1.3.2 선언되지 않은 변수 _1.4 정리하기 2장 값 _2.1 배열 __2.1.1 유사 배열 _2.2 문자열 _2.3 숫자 __2.3.1 숫자 구문 __2.3.2 작은 소수 값 __2.3.3 안전한 정수 범위 __2.3.4 정수인지 확인 __2.3.5 32비트 (부호 있는) 정수 _2.4 특수 값 __2.4.1 값 아닌 값 __2.4.2 Undefined __2.4.3 특수 숫자 __2.4.4 특이한 동등 비교 _2.5 값 vs 레퍼런스 _2.6 정리하기 3장 네이티브 _3.1 내부 [[Class]] _3.2 래퍼 박싱하기 __3.2.1 객체 래퍼의 함정 _3.3 언박싱 _3.4 네이티브, 나는 생성자다 __3.4.1 Array( ) __3.4.2 Object( ), Function( ), and RegExp( ) __3.4.3 Date( ) and Error( ) __3.4.4 Symbol( ) __3.4.5 네이티브 프로토타입 _3.5 정리하기 4장 강제변환 _4.1 값 변환 _4.2 추상 연산 __4.2.1 ToString __4.2.2 ToNumber __4.2.3 ToBoolean _4.3 명시적 강제변환 __4.3.1 명시적 강제변환: 문자열 ↔ 숫자 __4.3.2 명시적 강제변환: 숫자 형태의 문자열 파싱 __4.3.3 명시적 강제변환: * → 불리언 _4.4 암시적 변환 __4.4.1 ‘암시적’이란? __4.4.2 암시적 강제변환: 문자열 ↔ 숫자 __4.4.3 암시적 강제변환: 불리언 → 숫자 __4.4.4 암시적 강제변환: * → 불리언 __4.4.5 &&와 || 연산자 __4.4.6 심벌의 강제변환 _4.5 느슨한/엄격한 동등 비교 __4.5.1 비교 성능 __4.5.2 추상 동등 비교 __4.5.3 희귀 사례 _4.6 추상 관계 비교 _4.7 정리하기 5장 문법 _5.1 문과 표현식 __5.1.1 문의 완료 값 __5.1.2 표현식의 부수 효과 __5.1.3 콘텍스트 규칙 _5.2 연산자 우선순위 __5.2.1 단락 평가 __5.2.2 끈끈한 우정 __5.2.3 결합성 __5.2.4 분명히 하자 _5.3 세미콜론 자동 삽입 __5.3.1 에러 정정 _5.4 에러 __5.4.1 너무 이른 변수 사용 __5.5 함수 인자 _5.6 try…finally _5.7 switch _5.8 정리하기 PART I I 스코프와 클로저 1장 스코프란 무엇인가 _1.1 컴파일러 이론 _1.2 스코프 이해하기 __1.2.1 출연진 __1.2.2 앞과 뒤 __1.2.3 컴파일러체 __1.2.4 엔진과 스코프의 대화 __1.2.5 퀴즈 _1.3 중첩 스코프 __1.3.1 비유로 배워보기 _1.4 오류 _1.5 정리하기 __1.5.1 퀴즈 답안 2장 렉시컬 스코프 _2.1 렉스타임 _2.1.1 검색 _2.2 렉시컬 속이기 __2.2.1 eval __2.2.2 with __2.2.3 성능 _2.3 정리하기 3장 함수 vs 블록 스코프 _3.1 함수 기반 스코프 _3.2 일반 스코프에 숨기 __3.2.1 충돌 회피 _3.3 스코프 역할을 하는 함수 __3.3.1 익명 vs 기명 __3.3.2 함수 표현식 즉시 호출하기 _3.4 스코프 역할을 하는 블록 __3.4.1 with __3.4.2 try/catch __3.4.3 let __3.4.4 const _3.4 정리하기 4장 호이스팅 _4.1 닭이 먼저냐 달걀이 먼저냐 _4.2 컴파일러는 두 번 공격한다 _4.3 함수가 먼저다 _4.4 정리하기 5장 스코프 클로저 _5.1 깨달음 _5.2 핵심 _5.3 이제 나는 볼 수 있다 _5.4 반복문과 클로저 __5.4.1 다시 보는 블록 스코프 _5.5 모듈 __5.5.1 현재의 모듈 __5.5.2 미래의 모듈 _5.6 정리하기 부록 A 다양한 환경의 자바스크립트 부록 A.1 ECMAScript _부록 A.2 호스트 객체 _부록 A.3 전역 DOM 변수 _부록 A.4 네이티브 프로토타입 _부록 A.5 〈script〉들 _부록 A.6 예약어 _부록 A.7 구현 한계 부록 B 스코프와 렉시컬 this _부록 B.1 동적 스코프 _부록 B.2 폴리필링 블록 스코프 _부록 B.3 렉시컬 this |
다 안다고 여겼던 자바스크립트, 정작 난 정확히 모르고 있었다.
자바스크립트는 웹의 태동과 괘를 같이 한 웹 프로그래밍 언어다. 웹의 심장부를 형성하는 대표 웹 프로그래밍 언어의 지위에 오른 자바스크립트는 사물인터넷(IoT), 증강현실(VR), 모바일 앱으로까지 영역을 확대하며 쓰임이 넓어지고 있다. 이처럼 자바스크립트 개발자가 웹 너머의 분야에서도 활약할 기회의 문이 열렸지만 자바스크립트에 완전히 숙달한 사람은 극히 드문 상황이다. C/C++ 등으로 완전한 프로그램을 짜려면 언어 자체를 깊이 있게 알고 있어야 하지만, 자바스크립트는 언어 전체의 능력 중 일부를 수박 겉핥기 정도만 알고 사용해도 웬만큼 서비스가 가능한 프로그램을 만들어낼 수 있기 때문이다. 바로 이것이 자바스크립트의 ‘모순’이자 ‘아킬레스건’이고, 이 책에서 다루는 주제다. 『You Don’t Know JS』 시리즈는 자바스크립트 중 특히 착각하기 쉽고 이해하기 어려운 부분을 깊고 철저하게 파고든다. 저자는 “그냥 이 정도면 됐지” 식으로 대충 이해하고 때우는 자세를 끊임없이 거론한다. 험한 길을 마주한 상황에서 쉬운 길로 돌아가라고 조언하지도 않는다. 자바스크립트에 대해 흔히 오해하고 있거나 잘못 이해하고 있는 여덟 가지 핵심 언어 요소를 완벽히 이해할 때까지 다양한 예제를 들어 깊고 철저하게 파헤쳐간다. |