이 책은 자바스크립트에 대한 이해를 확실히 해두고 싶은 분을 위해 만든 책이다. 자바스크립트는 좋게 표현하자면 ‘유연한’, 나쁘게 말하자면 ‘애매하고 어설픈’ 언어다. 남이 만든 코드를 대충 흉내내는 것만으로도 그럭저럭 동작하는 코드를 만들어 낼 수도 있지만, 본격적으로 마스터하려면 탄탄한 기초가 뒷받침되어야 한다.
이 책은 개발자가 알아야 할 기본 문법과 ECMAScript 6에 의해 계속 진화하고 있는 자바스크립트의 새로운 기법은 물론, 객제지향 구문, Ajax 클라이언트 측 개발에 대해 상세히 설명하며, 테스트, 문서, 코딩 등 현장에서 꼭 필요한 지식도 담겨 있다.
이 책의 주요 내용
기본적인 작성법 익히기
기본 데이터 조작하기: 내장형 객체
반복적으로 사용하는 코드를 하나로 정리하기: 함수
대규모 개발에서도 통용되는 작성법 익히기: 객체지향 구문
HTML과 XML 문서 다루기: DOM
클라이언트 측 자바스크립트 개발 마스터하기
현장에서 바로 대응할 수 있는 지식
지은이 소개
야마다 요시히로(山田 祥寛)
시즈오카현 하이바라초에서 태어났으며, 히토츠바시대학 경제학부를 졸업했다. NEC에서 시스템 기획 업무에 종사하였으나, 2003년 4월에 평소 동경했던 전업작가로 전향하였다. Microsoft MVP for Visual Studio and Development Technologies이며, 집필 커뮤니티 ‘WINGS 프로젝트’의 대표이기도 하다. 주요 저서로 《AngularJS 애플리케이션 프로그래밍》, 《퍼펙트 루비 온 레일즈》, 《Android 엔지니어를 위한 모던 Java》 등이 있으며, 이외에도 다수의 책을 썼다. 또한, @IT, CodeZine, Build Insider 등에 글을 연재하고 있으며, 〈닛케이 소프트웨어〉(닛케이 BP) 등에도 기사를 집필하고 있다. 최근에는 IT 관련 기술의 취재나 강연까지 폭넓은 영역에서 활동 중이다.
옮긴이 소개
정인식
숭실대학교에서 전자계산학을 전공하였다. 사회 초년생 시절 자바에 심취해 현대정보기술에서 웹 애플리케이션을 개발하였고, 그 후 이동통신 단말기 분야로 전직하여 휴대전화 단말기의 부가서비스 개발 업무를 담당하였다. 일본 키스코 모바일사업부 팀장이었으며, 일본 교세라의 북미향 휴대전화기 개발에 참여하였다. 지금은 일본의 주요 이동통신사에서 업무 프로세스 개선을 위한 IT 컨설팅 및 데이터 분석 관련 툴을 개발하고 있다. 옮긴 책으로는 《처음 만나는 알고리즘》, 《기초 튼튼 코드 튼튼 다 함께 프로그래밍》, 《유니티 5로 만드는 3D/2D 스마트폰 게임 개발》을 비롯해 10여 종이 있다.
차례
CHAPTER 1 소개 1
1.1 JavaScript란? 2
1.1.1 JavaScript의 역사 2
1.1.2 JavaScript 부활 ― Ajax, 그리고 HTML5의 시대 3
1.1.3 나쁜 이미지에 대한 오해 5
1.1.4 언어로서의 네 가지 특징 6
1.2 ECMAScript 2015란? 8
1.2.1 브라우저별 대응 상황 9
1.3 브라우저의 개발자 도구 11
1.3.1 개발자 도구 시작하기 11
1.3.2 HTML/CSS의 소스 확인하기 ─ [Elements] 탭 13
1.3.3 통신 상황 추적하기 ─ [Network] 탭 13
1.3.4 스크립트 디버그하기 ─ [Sources] 탭 15
1.3.5 스토리지/쿠키 내용 확인하기 ─ [Application] 탭 16
1.3.6 로그 확인/객체 조작 등의 만능 도구 ─ [Console] 탭 17
CHAPTER 2 기본적인 작성법 익히기 19
2.1 JavaScript의 기본적인 표기 20
2.1.1 JavaScript로 “안녕하세요, 자바스크립트!” 표기하기 20
2.1.2 JavaScript를 HTML 파일 안에 집어넣기 ─ <script> 요소 23
2.1.3 문장의 규칙 28
2.1.4 주석 삽입하기 30
2.2 변수와 상수 33
2.2.1 변수 선언하기 33
2.2.2 식별자의 명명 규칙 36
2.2.3 상수 선언하기 38
2.3 데이터형 41
2.3.1 JavaScript의 주요 데이터형 42
2.3.2 리터럴 43
2.4 연산자 52
2.4.1 산술 연산자 52
2.4.2 대입 연산자 55
2.4.3 비교 연산자 62
2.4.4 논리 연산자 66
2.4.5 비트 연산자 69
2.4.6 그 외의 연산자 71
2.4.7 연산자의 우선순위와 결합순서 73
2.5 제어 구문 77
2.5.1 조건에 따라 분기 처리하기 ─ if 명령 77
2.5.2 식의 값에 따라 분기 처리하기 ─ switch 명령 83
2.5.3 조건식에 따라 루프 제어하기 ─ while/do…while 명령 86
2.5.4 무한 루프 89
2.5.5 지정 횟수만큼만 루프 처리하기 ─ for 명령 90
2.5.6 연상 배열의 요소를 순서대로 처리하기 ─ for…in 명령 92
2.5.7 배열 등을 순서대로 처리하기 ─ for…of 명령 94
2.5.8 루프를 도중에 스킵/중단하기 ─ break/continue 명령 95
2.5.9 예외 처리하기 ─ try…catch…finally 명령 100
2.5.10 JavaScript의 위험한 구문 금지하기 ─ Strict 모드 103
CHAPTER 3 기본 데이터 조작하기 ─ 내장형 객체 107
3.1 객체란? 108
3.1.1 객체 = 프로퍼티 + 메소드 109
3.1.2 객체를 이용하기 위한 준비 ─ new 연산자 110
3.1.3 정적 프로퍼티/정적 메소드 112
3.1.4 내장형 객체란? 112
3.2 기본 데이터를 취급하기 위한 객체 116
3.2.1 문자열 조작하기 ─ String 객체 116
3.2.2 숫자 조작하기 ─ Number 객체 120
3.2.3 심벌 작성하기 ─ Symbol 객체 125
3.2.4 기본적인 숫자 연산 실행하기 ─ Math 객체 127
3.3 값의 집합을 처리/조작하기 ─ Array/Map/Set 객체 131
3.3.1 배열 조작하기 ─ Array 객체 131
3.3.2 연상 배열 조작하기 ─ Map 객체 144
3.3.3 중복되지 않은 값의 집합 조작하기 ─ Set 객체 148
3.4 날짜/시간 데이터 조작하기 ─ Date 객체 151
3.4.1 Date 객체 생성하기 151
3.4.2 날짜/시간 값을 가산/감산하기 154
3.4.3 날짜/시간 차이 구하기 155
3.5 정규 표현으로 문자 조작하기 ─ RegExp 객체 157
3.5.1 JavaScript에서 이용 가능한 정규 표현 158
3.5.2 RegExp 객체를 생성하는 방법 159
3.5.3 정규 표현에 의한 문자열 검색 160
3.5.4 정규 표현의 옵션으로 매치할 때 동작 제어하기 162
3.5.5 match 메소드와 exec 메소드의 동작 차이 164
3.5.6 매칭의 성공 여부 검증하기 166
3.5.7 정규 표현으로 문자열 치환하기 167
3.5.8 정규 표현으로 문자열 분할하기 169
3.6 모든 객체의 모형 ─ Object 객체 170
3.6.1 객체를 기본형으로 변환하기 ─ toString/valueOf 메소드 172
3.6.2 객체 결합하기 ─ assign 메소드 173
3.6.3 객체 생성하기 ─ create 메소드 174
3.6.4 불변 객체 정의하기 177
3.7 JavaScript 프로그램에서 자주 이용하는 기능 제공하기 ─ Global 객체 179
3.7.1 Number 객체로 이동한 메소드 180
3.7.2 쿼리 정보 이스케이프 처리하기 ─ encodeURI/encodeURIComponent 함수 181