Рецензия на книгу Effective JavaScript Дэвида Хермана (и немножко пересказ)

Сегодня хотелось немного рассказать о книге Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript. (Сила JavaScript. 68 способов эффективного использования JS) Конечно, учебников по JavaScript написано немало, и большая часть из них повторяет друг друга. Однако, в данной книге во-первых, толковая структура — каждая глава посвящена какому-то одному аспекту языка, и в то же время все главы собраны в удобно структурированные разделы, а во-вторых, язык книги живой, воды там мало. Да, забыл сказать, что книга рассчитана на профессионалов, так что там нет описания синтаксиса языка и т.п. Подразумевается, что у читателя уже есть опыт программирования на JavaScript, и он лишь хочет отшлифовать свои знания и ознакомиться с некоторыми сложными концепциями.

Итак, хватит похвал. В скобках лишь замечу, что почти все рецензии на этот учебник хорошие, люди ставят оценку 4 или 5 из 5. Пробежимся по главам…

Раздел 1 о конструкциях языка как такового
В нем вы узнаете, что числам с плавающей запятой нельзя доверять, что неявные преобразовнаия ттпа опасны, что примитивные типы лучше их объектных аналогов, что операция == опасна, если применяется с разными типами данных, что точка с запятой хоть и может подставляться интерпретатором автоматически, однако, в этом могут быть «подводные камни», наконец, что строки — это последовательности 16-битовых значений.

Раздел 2 о зонах видимости
Он предостережёт вас от использования глобальной зоны видимости и посоветует всегда объявлять локальные переменные. Вы узнаете, что использование with опасно. Научит комфортно работать с замыканиями, а эта тема очень важна в JavaScript. Если вы ещё не знаете, как устроен hoisting перменных, самое время узнать в этом разделе. Наконец, даются советы по использованию анонимных функций и функций-перменных, а также даются указания по eval.

Раздел 3 полностью посвящён функциям
Использование call для вызова функции с произвольным приёмником, разъяснение устройства конструктора псевдокласса, рассказ о функциях высшего порядка, использование apply для вызова функций с переменным числом аргументов, применение arguments для создания вариадических функций, применение bind, каррирование функций, использование замыканий для инкапсуляции кода — вот неисчерпывающий список вопросов, рассмотренных в разделе.

Раздел 4 посвящён объектам и, как следствие, псевдо-ООП на JavaScript
Здесь вы найдёте: всё о прототипах, советы по написанию конструкторов, многое об использовании замыканий для хранения закрытых данных, о неявном связывании this, о вызове конструктора родительского класса из потомка и многое другое.

Раздел 5 — всё о массивах и словарях
Здесь вы научитесь создавать «лёгкие» словари, защищаться от Prototype Pollution, тому, что массивы предпочтительнее словарей для упорядоченных коллекций и что нельзя добавлять перечисляемые свойства в прототипе объекта, а также особенностям работы циклов (for лучше, чем for in), созданию подобных массиву объектов и другому.

Раздел 6 о создании собственных библиотек и API
Особенности типа Undefined, передачи параметров через объекты, а также много советов по созданию грамотно построенных библиотек.

Раздел 7 посвящён программированию конкурентных задач
Научит вас не блокировать очередь событий при операциях ввода/выводаи вычислениях, использовать вложенные обратные вызовы (callback), рекурсию для асинхронных циклов, применять счётчик для конкурентных задач и никогда не вызывать асинхронные обратные вызовы синхронно, а также расскажет об API, реализующих обещания (promises) — очень интересную новую концепцию в JS.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.