HOME > Detail View

Detail View

Head first JavaScript programming (Loan 15 times)

Material type
단행본
Personal Author
Freeman, Eric, 1965- Robson, Elisabeth, 저 강권학, 역
Title Statement
Head first JavaScript programming / 에릭 프리먼, 엘리자베스 롭슨 지음 ; 강권학 옮김
Publication, Distribution, etc
서울 :   한빛미디어,   2015  
Physical Medium
708 p. : 삽화 ; 24 cm
Varied Title
Head first JavaScript programming
기타표제
판권기표제: 헤드 퍼스트 자바스크립트 프로그래밍
ISBN
9788968481567
General Note
게임과 퍼즐로 배우는 자바스크립트 입문서 ; 대화형 웹 애플리케이션의 시작  
색인수록  
부록: 못다한 이야기들  
Subject Added Entry-Topical Term
JavaScript (Computer program language)
000 00000cam c2200205 c 4500
001 000045827132
005 20150310115742
007 ta
008 150309s2015 ulka 001c kor
020 ▼a 9788968481567 ▼g 93000
035 ▼a (KERIS)BIB000013682584
040 ▼a 211062 ▼c 211062 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.133 ▼2 23
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b J41 2015
100 1 ▼a Freeman, Eric, ▼d 1965-
245 1 0 ▼a Head first JavaScript programming / ▼d 에릭 프리먼, ▼e 엘리자베스 롭슨 지음 ; ▼e 강권학 옮김
246 0 9 ▼a Head first JavaScript programming
246 1 ▼i 판권기표제: ▼a 헤드 퍼스트 자바스크립트 프로그래밍
260 ▼a 서울 : ▼b 한빛미디어, ▼c 2015
300 ▼a 708 p. : ▼b 삽화 ; ▼c 24 cm
500 ▼a 게임과 퍼즐로 배우는 자바스크립트 입문서 ; 대화형 웹 애플리케이션의 시작
500 ▼a 색인수록
500 ▼a 부록: 못다한 이야기들
650 0 ▼a JavaScript (Computer program language)
700 1 ▼a Robson, Elisabeth, ▼e
700 1 ▼a 강권학, ▼e
900 1 0 ▼a 프리먼, 에릭, ▼e
900 1 0 ▼a 롭슨, 엘리자베스, ▼e
945 ▼a KLPA

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.133 J41 2015 Accession No. 121232406 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

게임과 퍼즐로 배우는 자바스크립트 입문서. 이 책은 기초에서부터 객체, 함수, 브라우저 도큐먼트 객체 모델과 같은 고급 주제에 이르기까지 자바스크립트 언어의 모든 것을 설명한다. 그러나 지루하게 책만 읽는 것은 아니다. 게임도 하고, 퍼즐도 풀고, 미스터리 사건도 해결하고, 꿈에도 생각하지 못했던 방법으로 자바스크립트를 이용하게 된다.

게임과 퍼즐로 배우는 자바스크립트 입문서
머리가 좋아하는 이 학습서는 기초에서부터 객체, 함수, 브라우저 도큐먼트 객체 모델과 같은 고급 주제에 이르기까지 자바스크립트 언어의 모든 것을 설명합니다. 그러나 지루하게 책만 읽는 것은 아닙니다. 게임도 하고, 퍼즐도 풀고, 미스터리 사건도 해결하고, 꿈에도 생각하지 못했던 방법으로 자바스크립트를 이용하게 됩니다. 그리고 진짜 코드를 만듭니다. 그것도 아주 많이. 이제 여러분은 자신만의 웹 애플리케이션을 만들 수 있게 됩니다.

출판사 리뷰
헤드 퍼스트의 검증된 학습이론으로 쉽고 재미있게 배우는 자바스크립트 입문서


[ 이 책의 특징과 장점 ]
- 우리는 자바스크립트의 좋은 점은 가르치고, 나쁜 점에 대해서는 주의를 줍니다.
- 언어의 모든 측면을 꼬치꼬치 설명하지는 않습니다.
- 이 책은 브라우저에서 자바스크립트를 가르칩니다.
- 이 책은 최고의 프로그래밍 기법에 기반한 구조화되고 읽기 쉬운 코드를 지지합니다.
- 이 책에서는 두 개 이상의 브라우저를 사용하도록 권합니다.

[대상 독자 ]
-자바스크립트를 처음 배우거나, 좀 더 깊이 있게 공부하려는 사람

[상세 내용 ]
1, 자바스크립트 간단히 맛보기 : 자바스크립트의 바다에 풍덩
자바스크립트는 여러분에게 초능력을 드립니다. 웹 시대의 진정한 프로그래밍 언어인 자바스크립트는 웹 페이지가 살아 움직이게 만듭니다. 사용자는 더 이상 무미건조하고, 따분하고, 가만히 있는 웹 페이지를 보지 않아도 되요. 자바스크립트를 이용하면 사용자에게 다가가 흥미로운 이벤트에 응답하고, 외부 서버에서 가져온 데이터를 웹 페이지에 사용하고, 직접 그림도 그릴 수 있어요. 그 외에도 많은 일을 할 수 있게 됩니다. 일단 자바스크립트를 배우면 완전히 새롭게 작동하는 페이지를 만들 수 있습니다.

2. 진짜 코드 만들기 : 코딩 파고들기
여러분은 이미 변수, 형, 표현식… 그리고 더 많은 걸 알고 있어요. 즉 여러분은 자바스크립트에 대해 이미 어느 정도 알고 있다는 것이죠. 사실 지금 알고 있는 것만으로도 진짜 코드를 짤 수 있습니다. 뭔가 재미있는 일을 하는 코드, 누군가 사용하고 싶어 하는 코드를 만들 준비가 이미 되어 있는 거죠. 여러분이 부족한 것은 단지 코딩하는 진짜 경험입니다. 이번 장에서는 이 문제를 해결해보겠습니다. 어떻게 하냐고요? 맨땅에 헤딩하면서 간단한 게임을 만들어보는 겁니다. 완전히 자바스크립트만을 사용해서요. 목표가 너무 거대한 거 같다고요? 걱정하지 마세요. 하나하나 차분히 해나가면 됩니다. 망설이지 말고 일단 시작하세요. 이 게임으로 새로운 벤처 회사를 만든다고 해도 말리지 않겠습니다. 코드는 여러분의 것이니까요.

3. 함수 개요 : 함수 사용하기
이제 첫번째 초능력을 배울 겁니다. 지금까지 어느 정도 프로그래밍을 배웠으니 이제 함수를 이용해 작업할 때가 되었습니다. 함수를 이용하면 아주 다양한 환경에서 사용할 수 있는 코드를 만들 수 있습니다. 이 코드는 계속해서 재사용할 수 있고, 관리하기도 훨씬 쉽고, 복잡한 것을 처리해주는 코드에 간단히 이름만 붙여 놓고 중요한 일에 집중할 수 있게 해줍니다. 이렇게 복잡한 부분을 간단히 생각할 수 있게 해주는 방법을 추상화라고 합니다. 함수는 스크립터에서 프로그래머로 넘어가는 관문일 뿐만 아니라 자바스크립트 프로그래밍 스타일에 있어서 핵심이라는 것을 알게 될 겁니다. 이번 장에서는 함수의 작동 방식 및 함수를 작동하게 하는 입출력 등 기본적인 개념을 익히고, 앞으로 계속 사용하게 될 함수 활용 능력을 개발합니다. 이제부터 함수에 대해 제대로 배워보겠습니다.

4. 순서가 있는 데이터 : 배열
자바스크립트에는 숫자, 문자열, 불린형 말고도 많이 있어요. 지금까지는 "해피", 23, true와 같은 간단한 문자열, 숫자, 불린형과 같은 기본형(Primitive)만 사용해 자바스크립트 코드를 작성해왔습니다. 기본형만 갖고도 할 수 있는 일이 많지만 어느 수준에 도달하면 더 많은 데이터를 다뤄야 해요. 가령 장바구니에 들어 있는 모든 품목들, 재생 목록에 있는 노래들, 수많은 별들과 이 별들의 표면적, 아니면 제품 카탈로그 같은 것들이 있죠. 이런 것들을 처리하려면 약간 더 강력한 무언가가 필요합니다. 순서가 있는 이런 데이터를 처리하려면 자바스크립트 배열(Array)을 이용할 수 있습니다. 이번 장에서는 배열에 데이터를 넣고, 배열을
전달하고, 배열을 이용해 계산하는 방법을 알아볼 거예요. 나중에 데이터를 구조화하는 다른 방법도 배우지만, 일단 배열부터 시작하겠습니다.

5. 객체 개요 : 객체타운으로의 여행
지금까지 기본형과 배열을 코드에 사용해왔습니다. 그리고 단순한 문장, 조건식, for / while 루프, 함수를 사용하면서 상당히 절차적인 방식으로 코드를 만들어왔습니다. 이런 방식은 그다지 객체지향적이지 않아요. 사실 객체지향이랑은 아주 거리가 멉니다. 알게 모르게 우리는 여기저기에서 객체를 사용해왔지만, 직접 객체를 만들지는 않았습니다. 자, 이제 지루한 절차타운을 떠나 객체타운에서 여러분의 객체를 직접 만들 때가 되었어요. 이번 장에서는 객체를 사용하면 여러분의 삶이 얼마나 더 윤택해지는지 알려줄 거예요. 물론 프로그래밍 측면에서 말이죠(책 한 권으로 여러분의 패션 감각과 자바스크립트 기술을 모두 가르쳐드릴 수는 없어요). 여기서 주의할 점이 있습니다. 일단 여러분의 객체을 알게 된 후에는 기존과 같은 방식으로는 돌아가고 싶지 않을 거예요. 객체타운에 도착하면 우리에게 엽서라도 보내주세요.

6. 웹 페이지와 대화를 : DOM과 함께 춤을
지금까지 자바스크립트에 대해 많은 걸 공부했습니다. 사실 초짜에서 스크립터 수준까지는 되었죠. 어쩌면
프로그래머라고 부를 수도 있을지 모르겠습니다. 그런데 중요한 게 빠졌네요. 자바스크립트 기술을 제대로
활용하려면 이 코드가 들어 있는 웹 페이지와 대화하는 방법을 알아야 해요. 웹 페이지와 대화하는 방법을 알아야만 로딩된 후에 사용자의 요구에 응답해 반응할 수는 있는, 동적인 웹 페이지를 만들 수 있습니다. 그러면 어떻게 해야 웹 페이지와 대화할 수 있을까요? 문서 객체 모델(Document Object Model, DOM)을 사용해야 합니다. 이번 장에서는 DOM을 분해해보고, DOM과 자바스크립트를 이용해 웹 페이지에 새로운 기법을 적용해보겠습니다.

7. 형, 일치, 변환 기타 등등 : 형에 대한 심각한 이야기들
이제 형에 대해 신중할 때가 되었습니다. 자바스크립트는 언어 자체를 상세히 배우지 않고도 많은 것을 할 수 있다는 장점이 있습니다. 그렇지만 진짜로 언어를 정복하고, 승진하고, 인생일대에 원하는 것을 해내려면 형을 멋지게 활용할 수 있어야 합니다. 한참 앞에서 자바스크립트에 대해 했던 말이 기억나나요? 자바스크립트가 부유하게 대학교에서 상호 검토를 받고 정의된 언어가 아니라는 걸 말이죠. 사실입니다. 그렇지만 학교를 그만두었다고 스티브 잡스와 빌 게이츠가 실패한 것은 아닙니다. 자바스크립트도 마찬가지입니다. 실제로 자바스크립트는… 흐음… 정교한 형 체계를 갖고 있지 않습니다. 사용하다 보면 특이성도 보입니다. 그러나 걱정할 필요는 없어요. 이번 장에서는 형에 대한 모든 것을 확실히 정리해서 형 때문에 발생할 수 있는 창피한 문제들을 겪지 않게 만들어줄 거예요.

8. 모두 한데 모으기 : 앱 만들기
공구 벨트를 차세요. 그리고 이 공구 벨트에는 새로 배운 코딩 기술, DOM과 약간의 HTML 및 CSS에 대한 지식을 담으세요. 이번 장에서는 지금까지 배운 지식을 총동원해 처음으로 진정한 웹 애플리케이션을 만들어보겠습니다. 전함 한 척이 덜렁 한 줄에 숨는 그런 시시한 게임은 이제 끝이에요. 이번 장에서는 멋지고 큰 게임판, 여러 척의 배, 사용자 입력을 웹 페이지에 바로 입력하는 완전히 새로운 경험을 할 거예요. 먼저 HTML로 게임 페이지 구조를 만들고, CSS로 시각적인 스타일을 지정하고, 자바스크립트로 게임 행동을 구현하는 코드를 작성합니다. 이번 장에서는 약간 복잡한 코드를 구현하는데, 나중에 여러분이 실제로 개발할 때 탄탄한 기반이 될 거예요. 자, 이제 마음의 각오를 단단히 하고 출발할게요.

9. 비동기 코딩 : 이벤트 처리
이번 장에서는 자바스크립트의 전혀 새로운 측면을 보게 될 거예요. 지금까지 여러분은 그저 위에서 아래로 내려가면서 실행하는 코드를 작성해왔습니다. 사실 함수, 객체, 메서드 때문에 완전히 순서대로 실행되는 것은 아니지만 코드는 대부분 위에서 아래로 내려가는 길을 따라갑니다. 이 책의 중반이 지난 이제서야 이 사실을 얘기해서 죄송하지만, 그런 것은 자바스크립트 코드를 작성하는 방식이 아닙니다. 오히려 자바스크립트 대부분은 이벤트에 응답하도록 작성합니다. 어떤 이벤트가 있냐고요? 흐음… 사용자가 페이지를 클릭하는 것, 네트워크를 통해 도착한 데이터, 설정한 시간이 지난 타이머, DOM에서 발생한 변화 등이 이벤트가 됩니다. 사실 브라우저에서는 내부적으로 각종 이벤트가 내내 발생하고 있습니다. 이번 장에서는 자바스크립트 코딩하는 방식에 대해 다시 생각해보고 이벤트에 응답하는 코드를 작성하는 방법과 이유에 대해 설명합니다.

10. 일급 함수 : 해방된 함수
함수를 안다는 건 정말 멋진 일이에요. 예술이나 기술, 학문에서는 최고의 대가와 중급자를 한눈에 구분할 수
있는 어떤 핵심 원리가 있어요. 자바스크립트에서는 함수를 제대로 이해하고 있느냐가 구분하는 기준이 됩니다. 함수는 자바스크립트의 근간을 이루고 있으며, 함수에 대한 고급 지식과 활용에 의존해 코드를 설계하고 구성하는 기법들이 많습니다. 이런 수준까지 함수를 이해하는 과정은 재미있기도 하지만 때로는 상당히 머리 아픕니다. 자, 이제 준비를 단단히 하세요… 이번 장에서는 챨리와 초콜릿 팩토리에 나오는 윌리 웡카가 초콜릿 공장을 안내하는 장면이 생각날 거예요. 자바스크립트 함수를 더 많이 배워갈수록 거칠고, 기괴하고, 멋진 것들을 보게 될 겁니다.

11. 익명 함수, 범위, 클로저 : 고급 함수
지금까지 함수의 진정한 능력을 보여줬지만 아직 배워야 할 게 남았어요. 이번 장에서는 함수의 진면목을
보게 될 겁니다. 어떻게 함수를 제대로 다루는지 설명할게요. 내용이 길지는 않지만 많은 내용이 들어 있어요. 이번 장을 마칠 때 쯤이면 여러분이 생각했던 것보다 자바스크립트 표현력이 훨씬 좋아질 겁니다. 게다가 이번 장에서는 함수에 관련된 숙어적인 코드 표현도 설명하기 때문에 여러분의 동료가 작업한 코드를 읽거나 오픈 소스 자바스크립트 라이브러리를 살펴볼 수도 있을 거예요. 그리고 지금까지 익명 함수나 클로저에 대해 들어보지 못했더라도 이번 장에서 모두 설명합니다.

12. 고급 객체 생성 : 객체 만들기
지금까지는 객체를 수작업으로 하나씩 만들었습니다. 객체를 하나하나 만들기 위해 객체 리터럴을 이용해 속성을 모두 지정했습니다. 프로그램이 크지 않다면 이 방법도 나쁘지 않지만 제대로 된 코드에서는 더 좋은 방법이 필요합니다. 동일한 구조의 객체가 많이 필요할 때에는 객체 생성자를 사용합니다. 객체 생성자를 이용하면 객체를 더욱 쉽게 만들 수 있고, 동일한 설계도에 따르는 객체를 만들 수 있습니다. 동일한 설계도에 따라 만든 객체들은 모두 동일한 속성과 메서드를 갖고 있습니다. 그리고 생성자를 이용하면 동일한 코드를 반복할 때 발생하는 오류 없이, 객체 코드를 더욱 간결하게 만들 수 있어요. 그러면 이제 시작해볼까요? 이번 장을 마치면 여러분은 객체지향 개념을 탄탄히 갖춘 개발자처럼 생성자에 대해 얘기할 수 있게 됩니다.

13. 프로토타입 사용하기 : 초강력 객체
객체를 생성하는 건 시작일 뿐입니다. 이제 객체를 강화시킬 때가 되었네요. 객체들 간의 관계를 정의하고 코드를 공유할 수 있는 더 많은 방법이 필요합니다. 그리고 기존 객체를 확장해 개선할 방법도 필요합니다. 즉, 도구가 더 많이 필요합니다. 이번 장에서는 자바스크립트가 갖고 있는 강력한 객체 모델에 대해 알아볼 겁니다. 이 객체 모델은 지금까지의 객체지향 모델과 약간 다릅니다. 자바스크립트는 전형적인 클래스 기반의 객체지향 시스템이 아니라 더욱 강력한 프로토타입 모델을 채택하고 있습니다. 프로토타입을 통해 객체는 다른 객체의 행동을 상속하고 확장할 수 있습니다. 객체를 확장해서 뭐하냐고요? 잠시 후에 알아볼게요. 자, 이제 시작할까요?...

14. 부록 : (지금까지 설명하지 않은) 못다한 이야기들
지금까지 아주 많은 분야에 대해 다뤘고 책이 거의 끝나갑니다. 여러분이 그리울 겁니다. 그렇지만 여러분이
실제 자바스크립트 프로그래밍 세계로 떠나기 전에 약간의 준비를 도와주지 않으면 후회할 것 같네요. 이렇게 한정된 지면에 여러분이 알아야 할 것들을 모두 집어넣을 수는 없을 겁니다. 사실 처음에는 이 책의 앞에서 설명하지 않은 것들 중 여러분이 자바스크립트 프로그래밍에 대해 알아야 할 것을 모두 넣었었습니다. 폰트 크기를 0.00004로 줄여야 했습니다. 모든 내용이 다 들어 있더라도 이런 크기의 글자를
읽을 수 있는 사람은 없겠죠. 그래서 거의 모든 것을 버리고 가장 중요한 10가지만 추렸습니다. 이 부록이 정말 이 책의 끝입니다. 물론 찾아보기는 빼고요(찾아보기도 꼭 살펴보세요!).


Information Provided By: : Aladin

Author Introduction

에릭 프리먼(지은이)

월트 디즈니사의 디즈니 온라인과 Disney.com의 CTO를 역임했다. 현재 에릭은 엘리자베스와 공동 창업한 스타트업인 위키들리스마트(WickedlySmart)에 전념하고 있다. 에릭은 컴퓨터 과학자로서 예일대학교 박사과정에서 업계 선구자인 데이빗 겔런터와 함께 수학했다. 그의 박사학위 논문은 데스크탑 메타포어의 대안에 대한 근간을 이루고 있다고 인정받고 있으며 최초로 액티비티 스트림을 구현했다.

엘리자베스 롭슨(지은이)

소프트웨어 엔지니어, 작가, 강사로 활동하고 있다. 예일대학교 학생 시절부터 기술 분야에 열광했으며, 동대학원에서 전산학 석사학위를 받고 병렬 비주얼 프로그래밍 언어와 소프트웨어 아키텍처를 설계했다. 엘리자베스는 일찍부터 인터넷에 관련된 일을 해왔으며, 입상에 빛나는 The Ada Project 웹 사이트를 공동으로 개발했다. 컴퓨터 과학을 전공한 여성들이 온라인에서 직업을 구하고 멘토링 정보를 구할 수 있도록 도와주는 사이트다.

강권학(옮긴이)

중앙대학교 컴퓨터공학과에서 학사와 석사학위를 받았다. 국방과학연구소, 퓨쳐시스템, 안철수연구소에서 13년간 개발자, 보안전문가, 프로젝트 관리자로 근무하였으며, 2009년 4월 호주 멜버른에 iGonagi Pty. Ltd.를 설립하고 아이폰 애플리케이션을 개발하고 있다. 번역서로는 『게임 디자인 레벨업 가이드(공역)』, 『Head First Python』, 『안드로이드 시큐리티 인터널』, 『Head First JavaScript Programming』, 『비즈니스를 위한 데이터 과학』, 『C++ AMP』, 『Head First C』, 『iPhone 3D Programming』, 『iPhone Programming(공역)』, 『Head First iPhone Development』(이상 한빛미디어) 등이 있다.

Information Provided By: : Aladin

Table of Contents

목차
서문 = 25
 누구를 위한 책일까요? = 26
 지금 여러분은 이런 생각을 하고 있습니다 = 27
 초인지 : 생각하는 것에 대해 생각하는 것 = 29
 이 책에서는 이렇게 했습니다 = 30
 두뇌를 정복하는 방법 = 31
 알아두세요 = 32
 테크니털 리뷰 팀 = 35
 감사의 글 = 36
1 자바스크립트 간단히 맛보기 : 자바스크립트의 바다에 풍덩 = 39
 자바스크립트의 작동 방식 = 40
 자바스크립트를 작성하는 방법 = 41
 자바스크립트를 페이지 안에 넣는 방법 = 42
 자바스크립트, 얘야 정말 많이 컸구나… = 44
 자바스크립트문은 어떻게 만들까? = 48
 변수와 값 = 49
 키보드에서 물러서세요! = 50
 명령을 표현해요 = 53
 두 번 이상 반복하기 = 55
 while의 작동 방식 = 56
 자바스크립트로 결정내리기 = 60
 아주 많이 결정해야 할 때에는… = 61
 사용자와 의사소통하는 방법 = 63
 console.log() 자세히 살펴보기 = 65
 콘솔 열기 = 66
 제대로된 자바스크립트 애플리케이션 만들기 = 67
 어떤 방법으로 페이지에 코드를 넣을 수 있을까? = 70
 파일을 두 개로 나눕니다 = 71
2 진짜 코드 만들기 : 코딩 파고들기 = 81
 전함 게임을 만들자 = 82
 첫번째 시도… = 82
 먼저, 최상위 수준 설계부터 = 83
 의사코드 살펴보기 = 85
 아참! 더 진행하기 전에 HTML도 잊지 마세요! = 87
 간단한 전함 코드의 작성 = 88
 이제 게임 논리 코드를 작성합니다 = 89
 1단계 : 루프를 만들고 입력받기 = 90
 prompt() 작동 방법 = 91
 게이머가 입력한 값 확인하기 = 92
 전함에 맞았나요? = 94
 명중 탐지 코드 추가 = 95
 게임 종료 결과를 알려주기 = 96
 그러면 코드 논리가 완성됩니다! = 98
 간략한 품질 보증 활동 = 99
 수다쟁이님, 저랑 얘기 좀 해요… = 103
 간단한 전함 게임의 마무리 = 104
 무작위 위치에 놓는 방법 = 105
 난수를 생성하기 위한 세계에서 가장 유명한 레시피 = 105
 다시 조금 더 QA 과정을 거칩니다 = 107
 축하드립니다. 여러분은 첫번째 진짜 자바스크립트 프로그램을 만들었습니다! 그리고 코드 재사용에 대한 짧은 조언을 드립니다 = 109
3 함수 개요 : 함수 사용하기 = 117
 이 코드에 무슨 문제가 있나요? = 119
 그건 그렇고, 혹시 함수라는 말을 들어보셨나요? = 121
 그런데 함수는 실제로 어떻게 작동하는가? = 122
 어떤 걸 함수에 전달할 수 있을까? = 127
 자바스크립트 함수는 값으로 전달합니다 = 130
 함수는 이상해 = 132
 함수는 무언가를 돌려줄 수도 있습니다 = 133
 return문이 있는 함수 쫓아가보기 = 134
 전역 변수와 지역 변수 = 137
 지역 변수와 전역 변수의 범위 = 139
 덧없는 변수의 인생 = 140
 잊지 말고 꼭 지역 변수를 선언하세요! = 141
4 순서가 있는 데이터 : 배열 = 163
 버블자러스를 도와줄 수 있을까요? = 164
 자바스크립트에서 여러 값을 표현하는 방법 = 165
 배열 작동 방법 = 166
 그런데 배열은 얼마나 큰가요? = 168
 프레이조매틱 = 170
 한편, 버블자러스에서는… = 173
 배열에 반복 적용하는 방법 = 176
 그런데, 배열을 반복하는 더 좋은 방법이 있어요! = 178
 당신의 수다에 대해 얘기 좀 할까요? = 184
 후 증가 연산자를 사용해 루프 다시 만들기 = 185
 간단한 시험 주행 = 185
 빈 배열을 만들어 요소 추가하기 = 189
 그리고 우승자는… = 193
 간단히 코드를 살펴봅니다… = 195
 printAndGetHighScore() 함수 만들기 = 196
 printAndGetHighScore()로 코드 리팩토링하기 = 197
 코드 통합… = 199
5 객체 개요 : 객체타운으로의 여행 = 211
 방금 '객체'라고 하셨나요?! = 212
 속성에 대해 생각해보면… = 213
 객체 생성 방법 = 215
 그렇다면 객체지향은 어떤 건가요? = 218
 속성이 작동하는 방식 = 219
 변수에 객체가 어떻게 들어갈까요? 갑자기 궁금하네요 = 224
 기본형과 객체의 비교 = 225
 객체를 사용해보겠습니다… = 226
 prequal() 함수 따라가보기 = 228
 객체를 함수에 전달하는 것에 대한 보충 설명 = 230
 객체에 행동을 추가하는 방법 = 236
 drive() 메서드 개선 = 237
 drlve() 메서드가 started 속성을 못찾는 이유는? = 240
 this의 작동 방법 = 242
 행동은 어떻게 상태에 영향을 주는가… 자동차에 연로 추가하기 = 248
 이제 행동을 통해 상태를 바꿔보겠습니다 = 249
 축하드려요. 여러분이 결국 객체를 만들어냈어요! = 251
 여러분 주위에는 온통 객체들로 가득합니다!(덕분에 프로그래밍이 더 쉬워지죠) = 252
6 웹 페이지와 대화를 : DOM과 함께 춤을 = 267
 5장 뒷부분에 나온 '코드 크래킹 대회' 코드를 다시 살펴보겠습니다 = 268
 코드는 어떤 일을 했을까? = 269
 자바스크립트가 웹 페이지와 진짜로 대화하는 방법 = 271
 여러분의 DOM을 직접 구워보아요 = 272
 DOM 시식 = 273
 getElementByld()로 요소 가져오기 = 278
 DOM에서 가져온다는 게 정확히 어떤 걸까요? = 279
 내부의 HTML 알아내기 = 280
 DOM을 바꾸면 생기는 일 = 282
 행성 주변 시험 주행 = 285
 페이지를 완전히 로딩할 때까지는 내 코드를 실행할 꿈도 꾸지 마라! = 287
 당신에겐 '이벤트 처리기', 나에겐 '콜백' = 288
 setAttribute() 메서드로 속성 설정하는 방법 = 293
 속성을 갖고 놀기!(속성값을 읽을 수도 있어요) = 294
 getElementByld() 메서드도 널 값을 반환할 수 있다는 점을 잊지 마세요! = 294
 DOM을 이용해 또 어떤 일을 할 수 있을까요? = 296
7 형, 일치, 변환 기타 등등 : 형에 대한 심각한 이야기들 = 303
 진실은 저 멀리에… = 304
 조심하세요! 뜻하지 않게 undefined 값을 만날 수 있습니다… = 306
 널을 사용하는 방법 = 309
 NaN 다루기 = 311
 휠씬 더 이상한 문제가 있어요 = 311
 고백할 게 한 가지 있어요 = 313
 일치 연산자(==)에 대하여 = 314
 일치 연산자가 피연산자를 변환하는 방법(사실 그렇게 무시무시하지는 않습니다) = 315
 엄격하게 일치성을 판단하는 방법 = 318
 그 외 형변환… = 324
 두 객체가 같은지 판단하는 방법 = 327
 진실은 저 너머에… = 329
 자바스크립트가 거짓된 것으로 판단하는 것 = 330
 문자열의 은밀한 생활 = 332
 문자열이 기본형으로, 또 객체로도 보이는 이유 = 333
 문자열 메서드와 속성에 대한 5분 가이드 = 335
 의자 전쟁 = 339
8 모두 한데 모으기 : 앱 만들기 = 355
 이번에는 진짜 전함 게임을 만듭니다 = 356
 일단 HTML과 CSS를 먼저 = 357
 HTML 페이지 생성 : 전체 계획 = 358
 약간의 스타일 추가 = 362
 hit와 miss 클래스의 사용 = 365
 게임 설계 기법 = 367
 뷰 구현 = 369
 displayMessage() 구현 방법 = 369
 displayHit()와 displayMiss() 구현 방법 = 371
 모델 = 374
 전함의 표현 방법 = 376
 모델 객체 구현 = 379
 fire() 메서드 준비 = 380
 컨트롤러 구현 = 387
 게이머의 추측값 처리 = 388
 코드 계획… = 389
 parseGuess() 구현 = 390
 추측한 횟수 세기 = 393
 발사! 버튼에 이벤트 처리기 추가하기 = 397
 입력을 컨트롤러에 전달하기 = 398
 전함을 배치하는 방법 = 402
 generateShip() 메서드 구현 = 403
 새로운 전함의 시작 위치 생성 = 404
 generateShip() 메서드 완료 = 405
9 비동기 코딩 : 이벤트 처리 = 419
 어떤 게 이벤트일까요? = 421
 이벤트 처리기는 뭘까요? = 422
 이벤트 처리기를 만드는 방법 = 423
 이벤트 시험 주행 = 424
 게임을 만들며 이벤트 알아보기 = 426
 게임 구현 = 427
 시험 주행 = 428
 그림을 몇 개 추가하세요 = 432
 이제 모든 그림의 onclick 속성에 동일한 처리기를 할당합니다 = 433
 모든 그림에 대해 동일 처리기 재사용 방법 = 434
 이벤트 객체가 작동하는 방법 = 437
 이벤트 객체 사용 = 439
 이벤트 객체와 타깃 시험 주행 = 440
 이벤트와 큐 = 442
 그 외 이벤트 = 445
 setTimeout() 작동 과정 = 446
 그림 게임 마무리 = 450
 타이머 시험 주행 = 451
10 일급 함수 : 해방된 함수 = 467
 function 키워드의 미스터리 이중생활 = 468
 함수 선언과 함수 표현식 = 469
 함수 선언 파싱 = 470
 다음은? 브라우저가 코드를 실행합니다 = 471
 그 다음은…조건문 = 472
 어떻게 함수가 값이 되기도 하는가? = 477
 자바스크립트에서 함수는 일급이라는 걸 말씀드렸나요? = 480
 일등석 비행 = 481
 승객을 처리하고 확인하는 코드 작성 = 482
 승객 목록에 대한 반복 = 484
 함수를 함수에 전달하기 = 485
 함수에서의 함수 반환 = 488
 승무원의 음료수 제공 코드 = 489
 승무원 음료수 주문 코드 : 새로운 방법 = 490
 일급 함수로 주문받기 = 492
 웹타운 콜라 = 495
 배열의 sort() 메서드 사용법 = 497
 코드 통합 = 498
 정렬 코드 시험 주행 = 500
11 익명 함수, 범위, 클로저 : 고급 함수 = 513
 함수의 다른 면을 살펴보면… = 514
 익명 함수 사용법 = 515
 또 한 번 여러분의 수다스러움에 대해 얘기해야겠습니다 = 517
 함수는 언제 정의되나요? 경우에 따라 다릅니다… = 521
 방금 무슨 일이 생긴 거죠? fly가 왜 정의되어 있지 않나요? = 522
 함수를 내포하는 방법 = 523
 내포가 범위에 미치는 영향 = 524
 다시 생각해보는 어휘 범위 = 526
 더욱 흥미로워지는 어휘 범위 = 527
 함수 다시 보기 = 529
 함수 호출 다시 보기 = 530
 도대체 클로저란 뭔가요? = 533
 함수 닫기 = 534
 클로저를 이용해 매직 카운터 구현하기 = 536
 안을 들여다보니… = 537
 함수 표현식을 인자로 전달해 클로저 생성하기 = 539
 클로저에는 환경의 사본이 아니라 원본이 들어 있습니다 = 540
 이벤트 처리기로 클로저 생성하기 = 541
 클릭하세요! 클로저 작동 과정 = 544
12 고급 객체 생성 : 객체 만들기 = 559
 객체 리터럴을 이용해 객체 생성하기 = 560
 개별적인 객체 생성 = 561
 객체 생성자 개요 = 563
 생성자를 만드는 방법 = 564
 생성자 사용법 = 565
 생성자의 작동 방식 = 566
 생성자에 메서드도 넣을 수 있습니다 = 568
 자동차 생산! = 574
 자동차 시험 주행 = 576
 아직 객체 리터럴을 버리지 마세요 = 577
 인자들을 객체 리터럴로 변경 = 578
 Car() 생성자 수정 = 579
 객체 인스턴스 개요 = 581
 생성자로 만든 객체도 자신만의 고유한 속성을 가질 수 있어요 = 584
 유용한 생성자들 = 586
 Array 객체 = 587
 그 외 내장 객체들 = 589
13 프로토타입 사용하기 : 초강력 객체 = 601
 객체를 그리는 더 좋은 방법 = 603
 객체 생성자 다시 보기 : 코드를 재사용하고 있습니다. 그런데 이 코드가 효율적인가요? = 604
 메서드 중복이 정말 문제가 되나요? = 606
 프로토타입이란 무엇인가? = 607
 프로토타입을 상속받기 = 608
 상속이 작동하는 과정 = 609
 프로토타입 오버라이드 = 611
 프로토타입 준비 = 614
 프로토타입은 동적입니다 = 620
 더 재미있는 sit() 메서드 구현하기 = 622
 sitting 속성의 작동 방법 다시 보기 = 623
 전시견 설계 접근법 = 627
 프로토타입 체인 만들기 = 629
 프로토타입 체인에서 상속의 작동 방식 = 630
 ShowDog 프로토타입 체인 만들기 = 632
 ShowDog 인스턴스 생성하기 = 636
 ShowDog 뒷마무리 = 640
 Dog.call() 단계별 분석 = 642
 프로토타입 체인의 끝 : Object = 645
 내장된 행동을 오버라이드함으로써 상속의 장점을 극대화하기 = 646
 내장된 행동을 확장함으로써 상속의 장점을 극대화하기 = 648
 자바스크립트의 대통합 이론 = 650
 객체를 통한 더 나은 삶 = 650
 지금까지의 설명 종합 = 651
 이제 어디로? = 651
14 부록 : (지금까지 설명하지 않은) 못다한 이야기들 = 661
 1 jQuery = 662
 2 DOM으로 할 수 있는 더 많은 일 = 664
 3 window 객체 = 665
 4 arguments 객체 = 666
 5 예외 처리 = 667
 6 addEventListener()로 이벤트 처리기 추가하기 = 668
 7 정규표현식 = 670
 8 재귀 = 672
 9 JSON = 674
 10 서버 측 자바스크립트 = 675
찾아보기 = 679

New Arrivals Books in Related Fields

Ramamurthy, Bina (2021)
윤관식 (2020)