이미 소장하고 있다면 판매해 보세요.
|
1 문법 맛보기
__let 키워드 ____함수 스코프 변수 선언 ____블록 스코프 변수 선언 ____변수 재선언 __const 키워드 ____상수의 스코프 ____상수를 통한 객체 참조 __파라미터 기본값 __펼침 연산자 ____펼침 연산자의 다른 용례 ________배열 값을 다른 배열의 일부로 만듦 ________배열 값을 다른 배열에 밀어 넣기 ____여러 배열 펼침 __나머지 파라미터 __해체 할당 ____배열 해체 할당 ________값을 건너뛴다 ________배열 해체 할당에 나머지 연산자를 사용 ________변수의 기본값 ________중첩 배열 해체 ________파라미터로 배열 해체 할당 사용 ____객체 해체 할당 ________변수의 기본값 ________조합 프로퍼티명을 해체 ________중첩 객체를 해체 ________파라미터로 객체 해체 할당 사용 __화살표 함수 ____화살표 함수에서의 this 값 ____화살표 함수와 일반 함수의 차이점 __강화된 객체 리터럴 ____프로퍼티 정의 ____메소드 정의 ____조합 프로퍼티명 __요약 2 라이브러리 __숫자 ____2진수 ____8진수 ____Number.isInteger(number) 메소드 ____Number.isNaN(value) 메소드 ____Number.isFinite(number) 메소드 ____Number.isSafeInteger(number) 메소드 ____Number.EPSILON 프로퍼티 __수학 연산 ____삼각 연산 ____산술 연산 ____기타 메소드 ________Math.imul(number1, number2) 함수 ________The Math.clz32(number) 함수 ________The Math.sign(number) 함수 ________The Math.trunc(number) 함수 ________The Math.fround(number) 함수 __문자열 ____비트가 초과된 코드 포인트를 이스케이프 ____codePointAt(index) 메소드 ____String.fromCodePoint(number1, ..., number 2) 메소드 ____repeat(count) 메소드 ____includes(string, index) 메소드 ____startsWith(string, index) 메소드 ____endsWith(string, index) 함수 ____정규화 ________사례 ____템플릿 문자열 ________표현식 ________여러 줄 문자열 ________원래 문자열 __배열 ____Array.from(iterable, mapFunc, this) 메소드 ____Array.of(values...) 메소드 ____fill(value, startIndex, endIndex) 메소드 ____find(testingFunc, this) 메소드 ____findIndex(testingFunc, this) 메소드 ____copyWithin(targetIndex, startIndex, endIndex) 함수 ____entries(), keys(), and values() 메소드 __콜렉션 ____배열 버퍼 ____타입화 배열 ____세트 ____위크세트 ____맵 ____위크맵 __객체 ______proto__ 프로퍼티 ________Object.is(value1, value2) 메소드 ________Object.setPrototypeOf(object, prototype) 메소드 ________Object.assign(targetObj, sourceObjs...) 메소드 __요약 3 이터레이터 __ES6 심볼 ____typeof 연산자 ____new 연산자 ____심볼을 프로퍼티 키로 사용 ____Object.getOwnPropertySymbols() 메소드 ____Symbol.for(string) 메소드 ____상용 심볼 __이터레이션 규약 ____이터레이터 규약 ____이터러블 규약 __제너레이터 ____return(value) 메소드 ____throw(exception) 메소드 ____yield* 키워드 __for...of 루프 __꼬리 호출 최적화 ____꼬리 호출 아닌 코드를 꼬리 호출로 전환 __요약 4 비동기 프로그래밍 __자바스크립트 실행 모델 __비동기 코드 작성 ____이벤트를 포함한 비동기 코드 ____콜백을 포함한 비동기 코드 __구원자, 프라미스 ____프라미스 생성자 ____이룸값 ____then(onFulfilled, onRejected) 메소드 ____catch(onRejected) 메소드 ____Promise.resolve(value) 메소드 ____Promise.reject(value) 메소드 ____Promise.all(iterable) 메소드 ____Promise.race(iterable) 메소드 __프라미스 기반의 자바스크립트 API ____배터리 상태 API ____웹 암호화 API __요약 5 리플렉트 API 구현 __Reflect 객체 ____Reflect.apply(function, this, args) 메소드 ____Reflect.construct(constructor, args, prototype) 메소드 ____Reflect.defineProperty(object, property, descriptor) 메소드 ________데이터 프로퍼티와 접근자 프로퍼티 ____Reflect.deleteProperty(object, property) 메소드 ____Reflect.enumerate(object) 메소드 ____Reflect.get(object, property, this) 메소드 ____Reflect.set(object, property, value, this) 메소드 ____Reflect.getOwnPropertyDescriptor(object, property) 메소드 ____Reflect.getPrototypeOf(object) 메소드 ____Reflect.setPrototypeOf(object, prototype) 메소드 ____Reflect.has(object, property) 메소드 ____Reflect.isExtensible(object) 메소드 ____Reflect.preventExtensions(object) 메소드 ____Reflect.ownKeys(object) 메소드 __요약 6 프록시 __프록시란? ____용어 정의 __프록시 API ____트랩 ________get(target, property, receiver) 메소드 ________set(target, property, value, receiver) 메소드 ________has(target, property) 메소드 ________isExtensible(target) 메소드 ________getPrototypeOf(target) 메소드 ________setPrototypeOf(target, prototype) 메소드 ________preventExtensions(target) 메소드 ________getOwnPropertyDescriptor(target, property) 메소드 ________defineProperty(target, property, descriptor) 메소드 ________The deleteProperty(target, property) 메소드 ________enumerate(target) 메소드 ________ownKeys(target) 메소드 ________apply(target, thisValue, arguments) 메소드 ________construct(target, arguments) 메소드 ____Proxy.revocable(target, handler) 메소드 ________용례 __프록시 용도 __요약 7 클래스 답사 __객체 지향 자바스크립트 ____자바스크립트 데이터 타입 ____객체 생성 ____상속 ____원시 데이터 타입 생성자 __클래스 다루기 ____클래스 정의 ________클래스 선언 ________클래스 표현식 ____프로토타입 메소드 ________get/set 메소드 ________제너레이터 메소드 ____정적 메소드 ____클래스의 상속 구현 ____조합 메소드명 ____프로퍼티 속성 ____클래스는 호이스팅 안 된다! ____생성자 메소드 결과를 오버라이딩 ____정적 접근자 프로퍼티, Symbol.species ____암시적 파라미터, new.target __객체 리터럴에 super 사용 __요약 8 모듈러 프로그래밍 __자바스크립트 모듈이란? __모듈 구현 - 기존 방법 ____즉시 실행 함수 표현식(IIFE) ____비동기 모듈 정의(AMD) ____커먼JS ____만능 모듈 정의 __새로운 모듈 구현 방식 ____ES6 모듈 생성 ____ES6 모듈 임포트 ____모듈 로더 ____브라우저에 모듈 사용 ____eval() 함수에서 모듈 사용 ____기본 익스포트 vs 명명된 익스포트 ____종합 예제 __요약 |
|
★ 이 책에서 다루는 내용 ★
■ ES6부터 도입된 새로운 구문 사용법 ■ 프로토타입 기반의 ES6 기능 활용 ■ ES6 비호환 환경에서의 ES6 코드 실행 ■ 프라미스를 이용해 읽고 관리하기 쉬운, 좀 더 우수한 비동기 코드 작성 ■ 이터레이터, 이터러블, 제너레이터의 사용법 ■ 객체 지향 프로그래밍과 클래스로 객체 생성하는 방법. ■ ES6 프록시 API를 통한 프록시 작성 및 용도 이해 ■ ES6 모듈을 이용한 자바스크립트 라이브러리 제작 ★ 이 책의 대상 독자 ★ 기본적인 개발 지식을 보유한 자바스크립트 개발자라면 이 책을 통해 최신 ES6 기능을 배우고 더 나은 클라이언트 측 프로그램을 개발하는 데 활용할 수 있다. ★ 이 책의 구성 ★ 1장, ‘문법 맛보기’에서는 변수, 함수 파라미터를 생성하는 새로운 방법을 소개하고, 새로 추가된 객체/함수 구문을 자세히 알아본다. 2장, ‘라이브러리’에서는 기존 객체에 추가된 프로토타입 기반의 새로운 메소드들을 살펴본다. 3장, ‘이터레이터’에서는 새롭게 추가된 이터레이터, 사용자 이터레이터 생성 방법, 꼬리 호출 최적화 등을 알아본다. 4장, ‘비동기 프로그래밍’에서는 비동기 실행 코드를 프라미스로 쉽게 작성하는 방법을 다룬다. 5장, ‘리플렉트 API 구현’에서는 ES6 객체 리플렉션을 깊숙이 탐구한다. 6장, ‘프록시’에서는 ES6 프록시로 객체의 기본 로직에 변화를 주는 방법을 알아본다. 7장, ‘클래스 답사’에서는 ES6 클래스를 응용한 객체 지향 프로그래밍과, 상속, 생성자, 추상화, 정보 은닉 등의 개념을 설명한다. 8장, ‘모듈러 프로그래밍’에서는 IIFE, 커먼JS, AMD, UMD, ES6 모듈 등의 여러 기법으로 자바스크립트 모듈을 생성하는 방법을 이야기한다. ★ 지은이의 말 ★ ECMAScript는 ECMA 인터내셔널(Ecma International)의 ECMA-262와 ISO/IEC 16262에 근거한 표준 스크립트 언어다. 자바스크립트, J스크립트(Jscript), 액션스크립트(ActionScript)가 ECMAScript의 상위 집합(superset)으로, 더 많은 객체/메소드가 있고 기능 면에서 ECMAScript보다 우월하지만 언어로서의 핵심 기능은 ECMAScript와 같다. ECMAScript의 7번째 수정판인 ECMAScript 6는 간단히 ‘ES6’라 부른다. 자바스크립트는 실로 강력하고 유연한 프로그래밍 언어지만 불필요한 군더더기가 많아 혹평을 받아왔다. 그래서 좀 더 쉬운 구문과 강력한 기능을 제공하면서도 자바스크립트로 컴파일이 가능한 커피스크립트(CoffeeScript)나 타입스크립트(Typescript) 같은 추상체를 대신 쓰는 개발자들도 있었다. 이제 ES6 이후론 코드 품질을 높이려고 잡다한 추상체와 테크닉을 빌려 써서 개발 프로세스를 늘어지게 하지 않아도 될 정도로 자바스크립트가 좋아졌다. ES6의 신기능은 커피스크립트 등 다른 인기 있는 추상화 언어에서 비롯됐고 작동 방식 또한 동일하기 때문에 자바스크립트로선 신기능이지만 프로그래밍 세계에선 전혀 새로운 것들이 아니다. 이 책은 자바스크립트 예제 코드를 보면서 ECMAScript의 신 버전, ES6의 전반적인 새 기능을 설명한다. 모든 예제 코드는 브라우저, 노드JS, 코도바 등의 환경에서 실습 가능하다. ★ 옮긴이의 말 ★ 이 책은 2015년 6월 17일, 공식 표준으로 발표된 ECMS-262의 여섯 번째 버전, 즉 ECMAScript 6의 새로운 기능을 빠르게 습득하기 위한 입문서입니다. 아직까지는 IE, 파이어폭스, 크롬 등 메이저 브라우저에서 ECMAScript 6 명세를 완벽히 구현하지 못했고, 이전 버전(ECMAScript 5)의 코드로도 ES6의 신기능을 어느 정도 흉내 낼 수 있는 상황이지만 새 표준의 보급은 과거에 비해 훨씬 빠르게 이루어질 것으로 예상됩니다. 대부분의 모든 기술이 그렇듯 새 버전이 반드시 구 버전에 비해 월등하고 우수하다고 할 수는 없고 그것을 가져다 쓰는 사용자가 굳이 얼리 어댑터(early adopter)가 되어야 할 필요는 없겠지만, 자바스크립트가 전문인 프로그래머라면 ES6가 당연한 대세로 자리를 잡기 전에 미리 준비를 해두지 않으면 안 될 것입니다. 그런 점에서 책이 출간된 이 시점이 자바스크립트의 새 표준을 학습할 적당한 시기가 아닐까 싶습니다. 이 책은 주로 새 표준에서 등장한 새로운 구문 요소와 간단한 예제를 설명하지만, C나 자바, 파이썬 등 다른 언어 경험이 있는 분들에게는 프로그래밍 언어들이 점차 상향 평준화하고 있다는 동향과 자바스크립트만의 독특한 디자인 철학과 개념을 엿볼 수 있는 계기가 될 것입니다. 이 책을 움켜쥔 독자 여러분이 나무를 자세히 들여다 보면서도 숲 전체를 조망할 수 있는 식견과 높은 수준의 마인드를 가진 자바스크립트 개발자로 한 단계 성장하길 바랍니다. |