책소개
JavaScript로 무엇이든 해낼 수 있다!
발 빠르게 진화되면서 세계에서 가장 인기 있는 언어가 된 자바스크립트를 설치부터 활용까지 예제별로 친절하게 안내하는 책이다. 본서는 총 5개의 파트(입문, 초급, 중급, 활용, 실무)로 구성되어 있으며 200개의 예제를 학습하면서 자바스크립트를 익힐 수 있다.
입문 파트에서는 언어를 실행할 수 있는 환경을 안내하고 기초적 개념을 학습하며, 초급 파트에서는 기본적인 자료구조 외 ES6의 향상된 문법을 배운다. 중급 파트에서는 실제로 많이 사용되는 개체의 메소드 활용법을 안내하며, 활용 파트로 넘어가 자바스크립트를 응용하는 방법을 배운다. 예제를 통해 웹 페이지와 서버를 구현해 보고, 실무 파트에서 파일 업로드 및 게임 만들기를 통해 서버와 클라이언트 모두를 자바스크립트로 구현해 볼 수 있다.
이 책을 학습하기 위한 본문 예제 파일은 정보문화사 홈페이지(infopub.co.kr) 자료실에서 다운로드 가능하며, 학습 중 궁금한 사항은 저자 홈페이지(github.com/js-200/js-200-examples/issues)에서 피드백 가능하다.
저자소개
소프트웨어 엔지니어로서 체코의 솔루션 회사에서 자바스크립트 개발로 시작했다. KT와 실리콘밸리 소재 스타트업에서 여러 소프트웨어를 개발했다. 현재는 국내 금융 IT 회사에서 빅데이터 엔지니어로 일하고 있다. 다양한 외부 활동을 통해 IT 지식을 공유하고자 노력하고 있으며, Google Developer Expert로 Angular와 웹 기술 에반젤리스트로 활동하고 있다.
목차
PART 1 자바스크립트 첫발 내딛기
001 웹 콘솔로 코드 실행하기
002 Nodejs REPL로 코드 실행하기
003 Visual Studio Code로 프로그래밍하기 ①
004 Visual Studio Code로 프로그래밍하기 ②
005 값(value)과 변수(variable) 이해하기
006 자바스크립트 문장 배우기
007 주석 처리하기
008 자료형 이해하기
009 콘솔로 자료형 출력하기
010 조건문 배우기 - if
011 조건문 배우기 - if, else if, else
012 조건문 배우기 - switch
013 반복문 배우기 - for
014 반복문 배우기 - for in
015 반복문 배우기 - while
PART 2 자바스크립트 기초 다지기
016 숫자형 이해하기
017 문자형 이해하기
018 불린형 이해하기
019 null과 undefined 이해하기
020 템플릿 문자열 이해하기
021 산술 연산자
022 비교 연산자
023 논리 연산자
024 삼항 연산자
025 비트 연산자
026 자료형 변환 이해하기
027 배열 이해하기
028 객체 이해하기 ①
029 객체 이해하기 ②(속성 접근/추가/수정/삭제)
030 ES6의 향상된 객체 문법 알아보기 - 단축 속성명
031 ES6의 향상된 객체 문법 알아보기 - 속성 계산명
032 ES6의 향상된 객체 문법 알아보기 - 비구조화 할당
033 심볼형 이해하기
034 함수 이해하기
035 예외 처리하기
036 arguments 객체 이해하기
037 함수 기본 매개변수 처리하기
038 함수 나머지 매개변수 이해하기
039 스코프 이해하기
040 함수 호이스팅 이해하기
041 let으로 변수 선언하기
042 const로 상수 선언하기
043 스코프 체인 이해하기
044 클로저 이해하기
045 객체 속성 기술자 이해하기
046 Get, Set을 통한 속성 접근 관리하기
047 화살표 함수 이해하기
048 자바스크립트 객체지향 프로그래밍 이해하기
049 생성자 함수 이해하기
050 프로토타입 기반 상속 이해하기
051 클래스 정의하기
052 클래스 상속 이해하기
053 클래스 정적 메소드와 속성 정의하기
054 this 이해하기
055 모듈 이해하기
056 모듈 시스템 이해하기
057 모듈 기본값 정의하고 가져오기
058 모듈을 여러 이름으로 내보내고 가져오기
059 모듈을 다양한 방식으로 사용하기
PART 3 자바스크립트 실력 다지기
060 표준 내장 객체 이해하기
061 자료형 확인하기(typeof, instanceof)
062 NaN 값 확인하기(NumberisNaN)
063 정수 확인하기(isInteger)
064 배열 자료형 확인하기(isArray)
065 문자열을 숫자형 정수로 변환하기(parseInt)
066 실수형 숫자로 변환하기(parseFloat)
067 문자열 양 끝의 공백 없애기(trim)
068 문자열 자르기 ①(slice)
069 문자열 자르기 ②(substring)
070 문자열 자르기 ③(substr)
071 문자열 길이 구하기(length)
072 문자열로 변환하기(toString)
073 두 개의 문자열 하나로 합치기(concat)
074 특정 위치의 문자 반환하기(charAt)
075 특정 문자열 위치 확인하기 ①(indexOf)
076 특정 문자열 위치 확인하기 ②(lastIndexOf)
077 특정 문자열 포함 여부 확인하기(includes)
078 문자열 대소문자 변환하기(toLowerCase, toUpperCase)
079 배열 요소를 분할/변환하기(from)
080 문자열을 특정 구분자에 의해 배열로 나누기(split)
081 배열 뒤에 요소 추가하기(push)
082 배열 앞에 요소 추가하기(unshift)
083 배열 길이 구하기(length)
084 배열 합치기(concat)
085 배열에 특정 구분자 넣어 문자형으로 변환하기(join)
086 배열 마지막 요소 추출하기(pop)
087 배열 맨 앞 요소 추출하기(shift)
088 배열 특정 위치의 요소 추출하기(slice)
089 배열 인덱스로 특정 요소 수정하기(splice)
090 배열의 특정 요소 위치 확인하기(indexOf)
091 배열 순환하기(forEach)
092 배열 정렬하기(sort)
093 배열의 순서를 반대로 나열하기(reverse)
094 배열 요소가 특정 조건을 만족하는지 확인하기(some)
095 모든 배열 요소가 특정 조건을 만족하는지 확인하기(every)
096 배열의 특정 조건을 기준으로 필터링하기(filter)
097 배열의 특정 조건을 충족하는 요소 찾기(find)
098 배열 요소 일괄 변경하기(map)
099 배열 내 값을 누적시키기(reduce)
100 중첩된 배열을 단일하게 만들기(reduce)
101 객체에서 키만 추출하기(keys)
102 객체에서 값만 추출하기(values)
103 객체를 배열로 변환하기(entries)
104 객체 변경되지 않도록 하기(freeze)
105 객체에 속성 추가 못하게 만들기(seal)
106 객체 병합 확장하기(assign)
107 진수 변환하기(toString)
108 10진수 아닌 진법을 다른 진법으로 변환하기(parseInt)
109 랜덤값 구하기(random)
110 특정 자리수에서 반올림하기(round)
111 특정 자리수에서 올림하기(ceil)
112 특정 자리수에서 내림하기(floor)
113 현재 시간을 원하는 포맷으로 출력하기(getFullYear/getMonth/getDate)
114 UTC 기준 날짜 출력하기(DateUTC)
115 두 개의 날짜 사이의 경과 시간 계산하기
116 JSON을 문자열로 변환하기(stringify)
117 JSON 문자열을 JSON으로 변환하기(parse)
118 정규표현식으로 대응되는 문자열 위치 확인하기(search)
119 정규표현식으로 문자열 확인하기(match)
120 정규표현식으로 특정 문자의 포함 여부 확인하기(test)
121 정규표현식으로 문자열 변환하기(exec)
122 정규표현식으로 문자열 치환하기(replace)
123 반복 가능한 객체와 반복자 이해하기
124 문자열 순환하기(for-of)
125 배열 순환하기(for-of)
126 Map 객체에 요소 추가/삭제/확인하기(set, get, delete, has)
127 Map 객체의 크기 확인하기(size)
128 Map 객체 요소 나열하기(keys, values, entries)
129 Map 객체 순환하기 ①(for-of, foreach)
130 Map 객체 순환하기 ②
131 Set 객체의 값 추가/삭제/확인하기(add, delete, has)
132 Set 객체의 크기 확인하기(size)
133 Set 객체로 Array 중복 요소 없애기
134 Set 객체 값 나열하기(keys, values, entries)
135 Set 객체 순환하기(for-of, foreach)
136 일정 시간 후에 코드 실행하기(setTimeout)
137 일정 시간마다 코드 실행하기(setInterval)
138 Promise 이해하기
139 Promise 조합하기
140 Async 이해하기
PART 4 자바스크립트 응용 다지기
141 문서 객체 모델 이해하기
142 DOM 탐색하기
143 DOM 속성과 태그 속성 이해하기
144 DOM 생성과 수정 그리고 삭제하기
145 스타일 제어하기
146 이벤트 처리하기
147 이벤트 흐름 이해하기
148 이벤트 전파 제어하기
149 이벤트 위임 처리하기
150 사용자 이벤트 생성하기
151 HTML 폼 활용하기
152 스크롤 처리하기
153 문서 이동하기
154 브라우저 히스토리 이해하기
155 브라우저 로컬 스토리지 사용하기
156 로컬 파일을 브라우저에서 읽기
157 iframe 조작하기
158 iframe과 메시지 교환하기
159 XMLHttpRequest로 비동기 통신 처리하기
160 Fetch API를 활용한 비동기 통신 처리하기
161 웹 워커로 백그라운드 코드 실행하기
162 Nodejs의 자바스크립트 이해하기
163 node 명령어로 파일 실행하기
164 Nodejs의 모듈 이해하기
165 Nodejs 내장 모듈 사용하기
166 Nodejs 예외 처리하기
167 Event Emitter 이해하기 ①
168 Event Emitter 이해하기 ②
169 폴더 생성하기
170 파일 쓰기
171 파일 정보 탐색하기
172 파일 읽기
173 파일 삭제하기
174 특정 폴더 내 모든 파일 삭제하기
175 Http 서버 띄우기
176 웹 API 작성하기 ①
177 웹 API 작성하기 ②
178 API 호출하기
179 외부 패키지 설치하기
180 request로 간편하게 api 요청하기
181 cheerio로 크롤링하기
PART 5 자바스크립트 프로그래밍 작성
182 숨김 메뉴(drawer menu) 만들기
183 해쉬(Hash) URL과 함께 동작하는 탭 메뉴 만들기
184 멀티 슬라이드쇼 만들기
185 간단한 텍스트 에디터 만들기
186 할 일 관리 애플리케이션 만들기 - TodoManager 클래스 정의
187 할 일 관리 애플리케이션 만들기 - TodoApp 클래스 만들기
188 할 일 관리 애플리케이션 만들기 - 로컬스토리지 활용하기
189 할 일 관리 애플리케이션 만들기 - 모듈 적용하기
190 파일 업로드 프로젝트 만들기
191 파일 업로드 서버 만들기
192 파일 업로드 클라이언트 만들기
193 베이스볼 게임 만들기 ① - 프로젝트 초기 구성 ①
194 베이스볼 게임 만들기 ② - 프로젝트 초기 구성 ②
195 베이스볼 게임 만들기 ③ - 게임 이해하기
196 베이스볼 게임 만들기 ④ - 서버 만들기(API)
197 베이스볼 게임 만들기 ⑤ - 서버 만들기(Service)
198 베이스볼 게임 만들기 ⑥ - 서버 만들기(파일로 데이터 기록/조회)
199 베이스볼 게임 만들기 ⑦ - 웹 클라이언트 만들기 ①
200 베이스볼 게임 만들기 ⑧ - 웹 클라이언트 만들기 ②