자바스크립트 개론 [체계적인 프로그래밍 수련법]
- 원서명Eloquent JavaScript: A Modern Introduction to Programming (ISBN 9781593272821)
- 지은이마레인 하버비케
- 옮긴이이대엽
- ISBN : 9788960773868
- 24,000원
- 2013년 01월 23일 펴냄 (절판)
- 페이퍼백 | 304쪽 | 188*235mm
- 시리즈 : 웹 프로페셔널, 프로그래밍 언어
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
프로그래밍을 비롯해 자바스크립트에 입문하는 초보자가 읽기에 적합한 책이다. 프로그래밍에 관한 소개부터 웹 프로그래밍에 이르기까지 명쾌한 설명과 간결한 코드를 제시함으로써 체계적으로 자바스크립트를 배울 수 있다. 변수, 제어 흐름, 함수, 자료 구조, 오류 처리 같은 기본적인 프로그래밍 요소를 비롯해 함수형 프로그래밍, 객체지향 프로그래밍, 모듈화, 정규 표현식 같은 고급 주제, 웹 프로그래밍과 관련된 주제까지 빠짐없이 다룬다. 아울러 자바스크립트의 프로토타입 기반 객체지향을 비롯해 자바스크립트의 강력한 언어적 특징들도 배울 수 있으므로, 이미 자바스크립트 프로그래밍을 해본 개발자들도 참고할 만한 내용이 많다.
[ 소개 ]
자바스크립트로 배우는 체계적인 프로그래밍 수련법
핵심을 관통하는 명쾌한 설명과 간결한 예제로 익히는 자바스크립트 프로그래밍 입문
자바스크립트는 구글 앱스, 트위터, 최신 브라우저 기반 게임 등 거의 모든 현대 웹 애플리케이션의 핵심이다. 자바스크립트는 초보자가 갖고 놀 만큼 간단하지만, 장난감처럼 단순하지만은 않다. 자바스크립트는 실전 애플리케이션을 개발하는 데 사용할 수 있는 유연하고 복잡한 언어다.
『자바스크립트 개론』에서는 성장일로에 있는 자바스크립트 언어를 살펴보고 아름답고 효과적인 코드를 작성하는 방법을 알려준다. 이 책의 저자는 독자들이 예제 코드에 몰두하고 처음 시작할 때부터 실습해보길 독려함으로써 프로그램을 만드는 방법을 빠르게 전수해준다. 인공생명 양식 시뮬레이션 같은 예제나 고전 게임인 소코반의 자바스크립트 버전을 따라하다 보면 다음과 같은 내용을 배울 것이다.
[ 이 책에서 다루는 내용 ]
■ 프로그램의 세 가지 핵심 요소인 문법, 제어, 데이터의 이해
■ 프로그램을 체계적이고 명확하게 만들기 위한 객체지향 프로그래밍 기법과 함수형 프로그래밍 기법의 활용 방법
■ 브라우저 조작을 위한 스크립트 작성과 기초적인 웹 애플리케이션 제작 방법
■ 정규 표현식과 XMLHttpRequest 객체의 활용 방법
[ 예제 코드 ]
프로그래밍은 예술이고 실습을 통해 가장 잘 익힐 수 있으므로 모든 예제 코드는 인터넷상의 실습 페이지에서 확인하고 실행할 수 있다. 『자바스크립트 개론』을 가이드 삼아 저자의 코드를 다듬고 확장하고 수정하거나 통째로 버리고 직접 처음부터 작성할 수도 있다. 그러다 보면 자신도 모르는 사이에 웹의 언어에 유창해질 것이다. 이 책에 나오는 코드를 실행하거나 활용하고 싶다면 http://eloquentjavascript.net/에서 제공하는 예제 코드를 이용하면 된다. 또는 에이콘출판사의 도서정보 페이지 http://acornpub.co.kr/book/eloquent-javascript에서 다운로드할 수도 있다.
[ 이 책의 구성 ]
처음 세 개 장(1장~3장)에서는 자바스크립트 언어를 소개하고 문법적으로 올바른 자바스크립트 프로그램을 작성하는 방법을 가르친다. 여기서는 제어 구조와 함수(여러분만의 연산을 작성한다), 자료 구조를 소개한다. 이 정도만 배워도 간단한 프로그램을 작성하는 데 충분할 것이다.
이런 프로그래밍에 대한 기초적인 이해를 바탕으로 다음 네 개 장(4~7장)에서는 좀 더 고급 기법을 살펴본다. 여기서 고급 기법이라 하면 이해할 수 없는 쓰레기로 만들지 않고도 좀 더 복잡한 프로그램을 작성할 수 있게 만들어주는 것을 말한다. 먼저 4장에서는 오류 처리와 예상치 못한 상황에 관해 알아본다. 그런 다음 5장과 6장에서는 함수형 프로그램과 객체지향 프로그래밍이라는 추상화에 대한 두 가지 주된 접근법을 소개한다. 7장에서는 프로그램을 조직화된 상태로 유지하는 방법에 관해 몇 가지를 충고한다.
나머지 장에서는 이론에 덜 치중하고 자바스크립트 환경에서 이용할 수 있는 도구에 관해 좀 더 알아본다. 8장에서는 텍스트 처리에 이용하는 하위 언어(sublanguage)를 소개하고, 9장에서부터 12장까지는 브라우저 내에서 프로그램이 실행 중일 때 프로그램에서 이용 가능한 기능을 설명한다. 즉, 웹 페이지를 조작하고, 사용자 행동에 반응하며, 웹 서버와 통신하는 방법을 알아본다.
[ 소개 ]
자바스크립트로 배우는 체계적인 프로그래밍 수련법
핵심을 관통하는 명쾌한 설명과 간결한 예제로 익히는 자바스크립트 프로그래밍 입문
자바스크립트는 구글 앱스, 트위터, 최신 브라우저 기반 게임 등 거의 모든 현대 웹 애플리케이션의 핵심이다. 자바스크립트는 초보자가 갖고 놀 만큼 간단하지만, 장난감처럼 단순하지만은 않다. 자바스크립트는 실전 애플리케이션을 개발하는 데 사용할 수 있는 유연하고 복잡한 언어다.
『자바스크립트 개론』에서는 성장일로에 있는 자바스크립트 언어를 살펴보고 아름답고 효과적인 코드를 작성하는 방법을 알려준다. 이 책의 저자는 독자들이 예제 코드에 몰두하고 처음 시작할 때부터 실습해보길 독려함으로써 프로그램을 만드는 방법을 빠르게 전수해준다. 인공생명 양식 시뮬레이션 같은 예제나 고전 게임인 소코반의 자바스크립트 버전을 따라하다 보면 다음과 같은 내용을 배울 것이다.
[ 이 책에서 다루는 내용 ]
■ 프로그램의 세 가지 핵심 요소인 문법, 제어, 데이터의 이해
■ 프로그램을 체계적이고 명확하게 만들기 위한 객체지향 프로그래밍 기법과 함수형 프로그래밍 기법의 활용 방법
■ 브라우저 조작을 위한 스크립트 작성과 기초적인 웹 애플리케이션 제작 방법
■ 정규 표현식과 XMLHttpRequest 객체의 활용 방법
[ 예제 코드 ]
프로그래밍은 예술이고 실습을 통해 가장 잘 익힐 수 있으므로 모든 예제 코드는 인터넷상의 실습 페이지에서 확인하고 실행할 수 있다. 『자바스크립트 개론』을 가이드 삼아 저자의 코드를 다듬고 확장하고 수정하거나 통째로 버리고 직접 처음부터 작성할 수도 있다. 그러다 보면 자신도 모르는 사이에 웹의 언어에 유창해질 것이다. 이 책에 나오는 코드를 실행하거나 활용하고 싶다면 http://eloquentjavascript.net/에서 제공하는 예제 코드를 이용하면 된다. 또는 에이콘출판사의 도서정보 페이지 http://acornpub.co.kr/book/eloquent-javascript에서 다운로드할 수도 있다.
[ 이 책의 구성 ]
처음 세 개 장(1장~3장)에서는 자바스크립트 언어를 소개하고 문법적으로 올바른 자바스크립트 프로그램을 작성하는 방법을 가르친다. 여기서는 제어 구조와 함수(여러분만의 연산을 작성한다), 자료 구조를 소개한다. 이 정도만 배워도 간단한 프로그램을 작성하는 데 충분할 것이다.
이런 프로그래밍에 대한 기초적인 이해를 바탕으로 다음 네 개 장(4~7장)에서는 좀 더 고급 기법을 살펴본다. 여기서 고급 기법이라 하면 이해할 수 없는 쓰레기로 만들지 않고도 좀 더 복잡한 프로그램을 작성할 수 있게 만들어주는 것을 말한다. 먼저 4장에서는 오류 처리와 예상치 못한 상황에 관해 알아본다. 그런 다음 5장과 6장에서는 함수형 프로그램과 객체지향 프로그래밍이라는 추상화에 대한 두 가지 주된 접근법을 소개한다. 7장에서는 프로그램을 조직화된 상태로 유지하는 방법에 관해 몇 가지를 충고한다.
나머지 장에서는 이론에 덜 치중하고 자바스크립트 환경에서 이용할 수 있는 도구에 관해 좀 더 알아본다. 8장에서는 텍스트 처리에 이용하는 하위 언어(sublanguage)를 소개하고, 9장에서부터 12장까지는 브라우저 내에서 프로그램이 실행 중일 때 프로그램에서 이용 가능한 기능을 설명한다. 즉, 웹 페이지를 조작하고, 사용자 행동에 반응하며, 웹 서버와 통신하는 방법을 알아본다.
목차
목차
- 1장 자바스크립트 기초: 값, 변수, 제어 흐름
- 값
- 숫자
- 산술 연산
- 문자열
- 단항 연산자
- 불리언 값, 비교, 불리언 로직
- 표현식과 문장
- 변수
- 키워드와 예약어
- 환경
- 함수
- prompt와 confirm
- print 함수
- 환경 변경
- 프로그램 구조
- 조건부 실행
- while과 do 반복문
- 코드 들여쓰기
- for 반복문
- 반복문 빠져나오기
- 간결한 방식의 변수 갱신
- switch를 이용한 분기
- 대문자화
- 주석
- 타입에 관해
- 미정의 값
- 자동 타입 변환
- 자동 타입 변환의 위험성
- &&와 ||
- 값
- 2장 함수
- 함수 정의 해부
- 정의 순서
- 지역 변수
- 중첩된 유효 범위
- 스택
- 함수 값
- 클로저
- 선택 인자
- 기법
- 중복 방지
- 순수함
- 재귀
- 함수 정의 해부
- 3장 자료 구조: 객체와 배열
- 문제: 막내 이모의 고양이
- 기본적인 자료 구조
- 프로퍼티
- 객체 값
- 집합으로서의 객체
- 변경 가능성
- 컬렉션으로서 객체: 배열
- 메소드
- 막내 이모의 고양이 문제 해결하기
- 단락 분리
- 관련 단락 찾기
- 고양이 이름 추출
- 전체 알고리즘
- 코드 정리
- 날짜 표현
- 날짜 추출
- 더 많은 정보 수집
- 데이터 표현
- 심화 이론
- 인자 객체
- 미진한 부분 마무리
- 수학 객체
- 열거형 프로퍼티
- 4장 오류 처리
- 문제 유형
- 프로그래머의 실수
- 런타임 오류
- 오류 처리
- 특별한 값 반환
- 예외
- 예외가 발생한 후의 정리
- 오류 객체
- 처리하지 않은 예외
- 선택적인 예외 포착
- 자동화된 테스트
- 5장 함수형 프로그래밍
- 추상화
- 고차 함수
- 함수 수정
- reduce 함수
- 배열 매핑
- 은둔자에 관한 슬픈 이야기
- HTML
- 은둔자의 텍스트 파일
- 단락 찾기
- 강조와 각주
- 각주 옮기기
- HTML 생성
- 은둔자의 책 변환
- 기타 함수형 비법
- 연산자 함수
- 부분 적용
- 함수 합성
- 문제 유형
- 6장 객체지향 프로그래밍
- 객체
- 메소드 정의
- 생성자
- 프로토타입 기반 생성
- 생성자와 프로토타입
- 프로토타입 오염
- 객체를 사전으로
- 인터페이스 구체화
- 생태계 시뮬레이션 구축
- 테라리엄 정의
- 공간 내의 지점
- 격자 표현
- 벌레의 프로그래밍 인터페이스
- 테라리엄 객체
- this와 this의 유효범위
- 생기 불어넣기
- 움직임
- 더 다양한 생명체
- 다형성
- 좀 더 생생한 시뮬레이션
- 상속
- 에너지 파악
- 식물 추가
- 초식 동물
- 활기 불어넣기
- 인공적인 아둔함
- 원형 상속
- 타입 정의 유틸리티
- 타입으로서의 프로토타입
- 객체의 세계
- instanceof 연산자
- 타입 섞어 쓰기
- 객체
- 7장 모듈화
- 모듈
- 예제
- 파일 형태의 모듈
- 모듈의 형태
- 로컬 네임스페이스로서의 함수
- 모듈 객체
- 인터페이스 설계
- 예측 가능성
- 구성 가능성
- 계층형 인터페이스
- 인자 객체
- 라이브러리
- 모듈
- 8장 정규 표현식
- 문법
- 문자 집합 매칭
- 단어와 문자열 경계 매칭
- 반복 패턴
- 하위 표현식 그룹화
- 후보 선택
- 매칭과 치환
- match 메소드
- 정규 표현식과 replace 메소드
- RegExp 객체의 동적 생성
- .ini 파일 처리
- 정리
- 문법
- 9장 웹 프로그래밍: 단기 속성 과정
- 인터넷
- URL
- 서버 측 프로그래밍
- 클라이언트 측 프로그래밍
- 웹 스크립트 작성 기초
- window 객체
- document 객체
- 타이머
- 폼
- 폼 스크립팅
- 자동 포커스
- 브라우저 비호환성
- 추가 참고 자료
- 인터넷
- 10장 문서 객체 모델
- DOM 요소
- 노드 링크
- 노드의 유형
- innerHTML 프로퍼티
- 노드 찾기
- 노드 생성
- 생성 도우미 메소드
- 노드 이동
- print 구현
- 스타일시트
- style 프로퍼티
- 노드 숨기기
- 배치
- 노드 크기 제어
- 당부의 말
- DOM 요소
- 11장 브라우저 이벤트
- 이벤트 핸들러
- 핸들러 등록
- 이벤트 객체
- 마우스 관련 이벤트 타입
- 키보드 이벤트
- 이벤트 중지
- 이벤트 객체의 정상화
- 초점 추적
- 폼 이벤트
- 윈도우 이벤트
- 예제: 소코반 구현
- 레벨 입력 형식
- 프로그램 설계
- 게임판 표현
- 컨트롤러 객체
- 이벤트 핸들러
- 12장 HTTP 요청
- HTTP 프로토콜
- XMLHttpRequest API
- 요청 객체 생성
- 단순 요청
- 비동기 요청
- XML 데이터 조회
- JSON 데이터 읽기
- 기초적인 요청 래퍼
도서 오류 신고
정오표
정오표
[p.65: 2행]
alert 함수는 다른 인자를 무시하고 Hello를 출력한다.
->
alert 함수는 다른 인자를 무시하고 "안녕하세요"를 출력한다.