You Don't Know JS : 타입과 문법, 스코프와 클로저

카일 심슨
282p

Where to buy

본 정보의 최신성을 보증하지 않으므로 정확한 정보는 해당 플랫폼에서 확인해 주세요.

Author/Translator

Table of Contents

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

Description

모호하고 애매한 여덟 가지 자바스크립트 개념 길라잡이_You Don’t Know JS 시리즈 웹 초창기 시절부터 자바스크립트는 사람들이 대화하듯 웹 콘텐츠를 소비할 수 있게 해준 기반 기술이었다. 20년 가까이 흐른 지금은 엄청난 규모로 기술적 역량이 성장하였고, 세계에서 가장 널리 사용되는 소프트웨어 플랫폼이라 불리는 웹의 심장부를 형성하는 핵심 기술이 되었다. 자바스크립트는 처음 시작하고 실행하기가 가장 쉬운 언어지만, 다른 언어보다 완전히 숙달한 사람은 훨씬 적다. C/C++ 등으로 완전한 프로그램을 짜려면 언어 자체를 깊이 있게 알고 있어야 하지만, 자바스크립트는 언어 전체의 능력 중 일부를 수박 겉핥기 정도만 알고 사용해도 웬만큼 서비스가 가능한 프로그램을 만들어낼 수 있다. 바로 이 부분이 자바스크립트의 모순이자 아킬레스건이고, 이 책에서 다루는 주제이기도 하다. ‘You Don’t Know JS’ 시리즈는 자바스크립트의 모든 것, 그중 특히 착각하기 쉽고 이해하기 어려운 부분을 깊고 철저하게 파고든다. 『You Don’t Know JS』 시리즈 도서 l You Don’t Know JS: 타입과 문법, 스코프와 클로저 강제변환의 유의 사항과 생성자로서의 네이티브 등 자바스크립트의 타입과 문법에 관한 모호한 개념을 저자 특유의 문체로 명쾌히 설명한다. 자바스크립트의 핵심인 스코프와 클로저에 대한 저자의 설명을 읽어보면 자바스크립트의 작동 원리가 머릿속에 그려질 것이다. l You Don’t Know JS: this와 객체 프로토타입, 비동기와 성능 호출부에 따라 this가 어떻게 바인드되는지, 제너레이터로 비동기 흐름을 어떻게 표현할 수 있는지를 비롯한 객체 프로토타입의 체계 같은 자바스크립트 핵심 개념을 이 책에서 배울 수 있다. 대상 독자 l 초급에서 중/고급으로 레벨 업하고 싶은 자바스크립트 개발자 l 자바스크립트 개발 경험이 있지만 때때로 개념이 헷갈리는 개발자 l 원인 모를 자바스크립트 오류로 힘겨워하는 개발자 출판사 서평 다 안다고 여겼던 자바스크립트, 정작 난 정확히 모르고 있었다. 자바스크립트는 웹의 태동과 괘를 같이 한 웹 프로그래밍 언어다. 웹의 심장부를 형성하는 대표 웹 프로그래밍 언어의 지위에 오른 자바스크립트는 사물인터넷(IoT), 증강현실(VR), 모바일 앱으로까지 영역을 확대하며 쓰임이 넓어지고 있다. 이처럼 자바스크립트 개발자가 웹 너머의 분야에서도 활약할 기회의 문이 열렸지만 자바스크립트에 완전히 숙달한 사람은 극히 드문 상황이다. C/C++ 등으로 완전한 프로그램을 짜려면 언어 자체를 깊이 있게 알고 있어야 하지만, 자바스크립트는 언어 전체의 능력 중 일부를 수박 겉핥기 정도만 알고 사용해도 웬만큼 서비스가 가능한 프로그램을 만들어낼 수 있기 때문이다. 바로 이것이 자바스크립트의 ‘모순’이자 ‘아킬레스건’이고, 이 책에서 다루는 주제다. 『You Don’t Know JS』 시리즈는 자바스크립트 중 특히 착각하기 쉽고 이해하기 어려운 부분을 깊고 철저하게 파고든다. 저자는 “그냥 이 정도면 됐지” 식으로 대충 이해하고 때우는 자세를 끊임없이 거론한다. 험한 길을 마주한 상황에서 쉬운 길로 돌아가라고 조언하지도 않는다. 자바스크립트에 대해 흔히 오해하고 있거나 잘못 이해하고 있는 여덟 가지 핵심 언어 요소를 완벽히 이해할 때까지 다양한 예제를 들어 깊고 철저하게 파헤쳐간다.

All content on this site is the property of WATCHA PEDIA and any unauthorized use, including but not limited to reproduction, republication, redistribution, quotation, crawling, AI learning, and data collection, is strictly prohibited without prior consent.

  • WATCHA, Inc.
  • CEO, Taehoon Park
  • 343, Gangnam-daero, Seocho-gu, Seoul, Republic of Korea
  • Corporate Registration Number 211-88-66013