ECMAScript 6 для разработчиков Год издания: 2017 Автор: Закас Н. Жанр или тематика: Компьютерная литература Издательство: Питер ISBN: 978-5-496-03037-3 Язык: Русский Формат: PDF Качество: Издательский макет или текст (eBook) Интерактивное оглавление: Да Количество страниц: 293 Описание: Познакомьтесь с радикальными изменениями в языке JavaScript, которые произошли благодаря новому стандарту ECMAScript 6. Николас Закас — автор бестселлеров и эксперт-разработчик — создал самое полное руководство по новым типам объектов, синтаксису и интересным функциям. Каждая глава содержит примеры программ, которые будут работать в любой среде JavaScript и познакомят вас с новыми возможностями языка. Прочитав эту книгу, вы узнаете о том, чем полезны итераторы и генераторы, чем ссылочные функции отличаются от обычных, какие дополни тельные опции позволяют работать с данными, о наследовании типов, об асинхронном программировании, о том, как модули меняют способ организации кода, и многом другом. Более того, Николас Закас заглядывает в будущее, рассказывая про изменения, которые появятся в ECMAScript 7. Неважно, являетесь вы веб-разработчиком или работаете с node.js, в этой книге вы найдете самую необходимую информацию, позволяющую эффективно использовать все возможности ECMAScript 6.
Дополнительная информация:
Оглавление:
Предисловие Благодарности Введение История ECMAScript 6 О книге Совместимость с браузерами и Node.js Кому адресована книга Обзор содержания Используемые соглашения От издательства Глава 1. Блочные привязки Объявление и местоположение переменных Объявления на уровне блока Объявления let Повторное объявление недопустимо Объявления const Временная мертвая зона Блочные привязки в циклах Функции в циклах Объявления let в циклах Объявления const в циклах Блочные привязки на глобальном уровне Новые приемы, появившиеся с введением блочных привязок В заключение Глава 2. Строки и регулярные выражения Улучшенная поддержка Юникода Кодовые пункты UTF-16 Метод codePointAt() Метод String.fromCodePoint() Метод normalize() Флаг u в регулярных выражениях Другие изменения в поддержке строк Методы идентификации подстрок Метод repeat() Другие изменения в регулярных выражениях Флаг у в регулярных выражениях Создание копий регулярных выражений Свойство flags Литералы шаблонов Основной синтаксис Многострочный текст Подстановка значений Теги шаблонов В заключение Глава 3. Функции Функции со значениями параметров по умолчанию Имитация значений параметров по умолчанию в ECMAScript 5 Значения параметров по умолчанию в ECMAScript 6 Как значения параметров по умолчанию влияют на объект arguments Выражения в параметрах по умолчанию Временная мертвая зона для параметров по умолчанию Неименованные параметры Неименованные параметры в ECMAScript 5 Остаточные параметры Дополнительные возможности конструктора Function Оператор расширения Свойство name Выбор соответствующих имен Специальные случаи свойства name Двойственная природа функций Как в ECMAScript 5 определить, каким способом вызвана функция Метасвойство new.target Функции уровня блоков Когда использовать функции уровня блока Функции уровня блока в нестрогом режиме Стрелочные функции Синтаксис стрелочных функций Создание выражений немедленно вызываемых функций Отсутствие привязки this Стрелочные функции и массивы Отсутствие привязки arguments Идентификация стрелочных функций Оптимизация хвостовых вызовов Отличия хвостовых вызовов в ECMAScript 6 Как использовать оптимизацию хвостовых вызовов В заключение Глава 4. Расширенные возможности объектов Категории объектов Расширение синтаксиса литералов объектов Сокращенный синтаксис инициализации свойств Сокращенный синтаксис определения методов Вычисляемые имена свойств Новые методы Метод Object.is() Метод Object.assign() Дубликаты свойств в литералах объектов Порядок перечисления собственных свойств Расширения в прототипах Смена прототипа объекта Простой доступ к прототипу с помощью ссылки super Формальное определение метода В заключение Глава 5. Деструктуризация для упрощения доступа к данным Какие выгоды дает деструктуризация? Деструктуризация объектов Присваивание с деструктуризацией Значения по умолчанию Присваивание локальным переменным с другими именами Деструктуризация вложенных объектов Деструктуризация массивов Присваивание с деструктуризацией Значения по умолчанию Деструктуризация вложенных массивов Остаточные элементы Смешанная деструктуризация Деструктурированные параметры Деструктурированные параметры являются обязательными Значения по умолчанию для деструктурированных параметров В заключение Глава 6. Символы и символьные свойства Создание символов Использование символов Совместное использование символов Приведение типов для символов Извлечение символьных свойств Экспортирование внутренних операций в виде стандартных символов Метод Symbol.hasInstance Свойство Symbol.isConcatSpreadable Свойства Symbol.match, Symbol.replace, Symbol.search и Symbol.split Метод Symbol.toPrimitive Свойство Symbol.toStringTag Свойство Symbol.unscopables В заключение Глава 7. Множества и ассоциативные массивы Множества и ассоциативные массивы в ECMAScript 5 Недостатки обходных решений Множества в ECMAScript 6 Создание множеств и добавление элементов Удаление элементов Преобразование множества в массив Множества со слабыми ссылками Ассоциативные массивы в ECMAScript 6 Методы ассоциативных массивов Инициализация ассоциативных массивов Метод forEach() ассоциативных массивов Ассоциативные массивы со слабыми ссылками В заключение Глава 8. Итераторы и генераторы Проблемы использования циклов Что такое итераторы? Что такое генераторы? Выражения функций-генераторов Методы-генераторы объектов Итерируемые объекты и циклы for-of Доступ к итератору по умолчанию Создание итерируемых объектов Встроенные итераторы Итераторы коллекций Итераторы строк Итераторы NodeList Оператор расширения и итерируемые объекты, не являющиеся массивами Дополнительные возможности итераторов Передача аргументов в итераторы Возбуждение ошибок внутри итераторов Инструкции return в генераторах Делегирование генераторов Асинхронное выполнение заданий Простой инструмент выполнения заданий Выполнение заданий с данными Инструмент асинхронного выполнения заданий В заключение Глава 9. Введение в классы JavaScript Структуры в ECMAScript 5, подобные классам Объявление класса Объявление простого класса В чем преимущества синтаксиса определения классов? Классы-выражения Простой класс-выражение Именованные классы-выражения Классы как сущности первого класса Свойства с методами доступа Вычисляемые имена членов Методы-генераторы Статические члены Наследование в производных классах Затенение методов класса Унаследованные статические члены Производные классы из выражений Наследование встроенных объектов Свойство Symbol.species Использование new.target в конструкторах классов В заключение Глава 10.Расширенные возможности массивов Создание массивов Метод Array.of() Метод Array.from() Новые методы всех массивов Методы find() и findIndex() Метод fill() Метод copyWithin() Типизированные массивы Числовые типы данных Буферы массивов Управление буферами массивов с помощью представлений Сходства типизированных и обычных массивов Общие методы Те же самые итераторы Методы of() и from() Различия типизированных и обычных массивов Различия в поведении Отсутствующие методы Дополнительные методы В заключение Глава 11.Объект Promise и асинхронное программирование Основы асинхронного программирования Модель событий Обратные вызовы Основы объектов Promise Жизненный цикл объекта Promise Создание неустановившихся объектов Promise Создание установившихся объектов Promise Ошибки исполнителя Глобальная обработка отклоненных объектов Promise Обработка отказов в Node.js Обработка отказов в браузерах Составление цепочек из объектов Promise Перехват ошибок Возврат значений в цепочке объектов Promise Возврат объектов Promise в цепочке Обработка сразу нескольких объектов Promise Метод Promise.all() Метод Promise.rасе() Наследование Promise Выполнение асинхронных заданий с помощью Promise В заключение Глава 12.Прокси-объекты и Reflection API Проблема с массивами Введение в прокси-объекты и Reflection API Создание простого прокси-объекта Проверка свойств с помощью ловушки set Проверка формы объектов с помощью ловушки get Сокрытие свойств с помощью ловушки has Предотвращение удаления свойств с помощью ловушки deleteProperty Ловушки операций с прототипом Как действуют ловушки операций с прототипом Почему поддерживается два набора методов? Ловушки, связанные с расширяемостью объектов Два простых примера Дубликаты методов управления расширяемостью Ловушки операций с дескрипторами свойств Блокирование вызова Object.defineProperty() Ограничения объекта дескриптора Дубликаты методов для операций с дескрипторами Ловушка ownKeys Обработка вызовов функций с помощью ловушек apply и construct Проверка параметров функции Вызов конструкторов без ключевого слова new Переопределение конструкторов абстрактных базовых классов Вызываемые конструкторы классов Отключение прокси-объектов Решение проблемы с массивами Определение индексов массива Увеличение значения length при добавлении новых элементов Удаление элементов при уменьшении значения length Реализация класса МуАrrау Использование прокси-объекта в качестве прототипа Использование ловушки get в прототипе Использование ловушки set в прототипе Использование ловушки has в прототипе Прокси-объекты как прототипы классов В заключение Глава 13.Инкапсуляция кода в модули Что такое модули? Основы экспортирования Основы импортирования Импортирование единственной привязки Импортирование нескольких привязок Импортирование всего модуля Тонкая особенность импортированных привязок Переименование экспортируемых и импортируемых привязок Значения по умолчанию в модулях Экспортирование значений по умолчанию Импортирование значений по умолчанию Реэкспорт привязки Импортирование без привязок Загрузка модулей Использование модулей в веб-браузерах Разрешение спецификаторов модулей в браузерах В заключение Приложение А. Мелкие изменения в ECMAScript 6 Новые приемы работы с целыми числами Идентификация целых чисел Безопасные целые числа Новые математические методы Идентификаторы с символами Юникода Формализованное свойство __proto__ Приложение Б. Введение в ECMAScript 7 (2016) Оператор возведения в степень Порядок операций Ограничения операндов Метод Array.prototype.includes() Как используется метод Array.prototype.includes() Сравнение значений Изменение области видимости функций в строгом режиме
Особенности релиза:
1. Хорошее издание, с закладочной навигацией в боковой панели; 2. Книга подогнана под формат А4; 3. Все рисунки были перерисованы в соответствии с оригиналом; 4. Текст хорошо распознан, возможно копирование в буфер (см.скрин 2) и поиск по всему тексту (см.скрин 3);
Отличие от оригинала
В связи с тем, что воссоздать полное оформление оригинала для меня не возможно, было создано собственное оформление. Но все выделения в тексте: жирный, курсив, шрифт для кода и т.д. было сохранено. По содержимому ничем не отличается от книги.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum