Книга Дэвида Флэнагана «JavaScript. Подробное руководство»

Дэвид Флэнаган "JavaScript. Подробное руководство"До сих пор мое знание JavaScript носило хаотичный характер, поскольку этот язык я изучал по мере надобности для решения конкретных задач, и чтобы упорядочить свои знания, решил почитать какой-нибудь основательный учебник, в котором бы рассказывалось о последних тенденциях в этом языке и в браузерах. В качестве учебника мне попалась книга Дэвида Флэнагана «JavaScript. Подробное руководство», а именно его 6 издание. Как оказалось, выбор был правильный, эта книга — как раз то, что я искал.

«JavaScript. Подробное руководство» — это довольно объемная книга на 1000 с лишним страниц, и в ней язык JavaScript описан практически со всех сторон, начиная от основ языка, включая то, что часто называют HTML5, и до реализаций JavaScript для работы на сервере — Node.js и Rhino.

Книга состоит из трех примерно равных по объему частей. Первая часть посвящена самому языку JavaScript независимо от того, где именно он используется, это так называемый базовый JavaScript. Мне понравилось, что описание языка написано с одной стороны достаточно аккуратно с точки зрения формулировок и определений, и в то же время, читается книга достаточно легко. В некоторых местах автор сравнивает JavaScript с другими языками программирования, что особенно актуально для глав про объектно-ориентированное программирование — все-таки при переходе на JavaScript с других языков, таких как C++, Java, C# и т.п. приходится перестраивать мышление и думать не в терминах классов, а в объектах. Также автор рассматривает множество подводных камней, характерных для JavaScript, особенно это касается неявного преобразования типов, «поднятия» объявления переменных и области видимости переменных. Благодаря таким примечаниям чувствуется, что автор имеет опыт практического программирования не только на JavaScript, поэтому многие примеры в книге будут полезны даже сами по себе в качестве готовых функций или объектов.

В этой части книги Флэнаган часто сравнивает стандарты ECMAScript 3 и ECMAScript 5, указывает на моменты, которые могут вызвать проблемы при переходе от одного стандарта к другому, какие возможности языка с появлением ECMAScript 5 стали устаревшими, а также рассказывает про строгий (strict) режим выполнения скриптов.

В конце первой части помещена глава про использование JavaScript на стороне сервера, и коротко рассмотрены технологии Rhino и Node.js. Позже, когда будут рассматриваться технологии AJAX и WebSockets, реализация серверной стороны будет приводиться с использованием Node.js.

Вторая часть книги посвящена тому, для чего изначально JavaScript и создавался, — написанию скриптов для web-страниц. Надо сказать, что авторам книжек по JavaScript в некотором смысле повезло, web-технологии и браузеры сейчас развиваются с такой скоростью, что книги устаревают уже к моменту выхода из типографии, и можно сразу же начинать писать следующее издание. Это относится и к «JavaScript. Подробному руководству». Эта книга была написана в далеком, по меркам веб-технологий, 2011 году, у нас она переведена и издана спустя год, на момент ее написания существовали следующие версии браузеров: Internet Explorer 8, а также бета-версия Internet Explorer 9, Firefox 3.6, Chrome 5, Safari 5, Opera 10.10. Должен предупредить, что после прочтения этой книги вы возненавидите Internet Explorer (по крайней мере до версии 9) — количество примечаний, связанных с несовместимостью этого браузера со стандартом просто зашкаливает, правда, во многих из них оговаривается, что в версии IE 9 все должно работать правильно.

Вторая часть тоже охватывает работу JavaScript в браузере со всех сторон. После описания основ работы клиентского JavaScript основных объектов браузера рассматривается модель DOM и работа с формами. Отдельная глава посвящена основам CSS и использованию его вместе с JavaScript, после чего довольно подробно рассказывается о такой замечательной библиотеке как jQuery.

Разумеется, не обошлось без технологии Ajax, причем в книге написано не только об объекте XMLHttpRequest — основы этой технологии, но и о ее альтернативе — архитектуре Comet.

Еще одна глава посвящена вопросу хранения данных на стороне клиента, начиная с доисторических Cookie. Также рассматриваются объекты интерфейса Web Storage, который изначально зародился в рамках HTML5, а после был вынесен в отдельную спецификацию, рассматривается альтернатива этому стандарту, которая была реализована еще в IE 5 — userData. Коротко говорится о так называемых автономных Web-приложениям (Offline Web Applications), повление которых тоже связано со стандартом HTML5.

Большая глава посвящена работе с графикой и мультимедиа. Здесь коротко рассматривается формат векторных изображений SVG и его формирование с помощью JavaScript, также в этой главе дается подробное описание объектов элементов <audio> и <video>, появившихся также благодаря стандарту HTML5 (прощай, Flash). После этого подробно рассказывается про еще один элемент, который связан непосредственно с HTML5 — <canvas>.

И последняя глава второй части книги посвящена новым вещам, появившимся в HTML5, но которые еще нельзя считать повсеместно принятыми и реализованными. Это, например, интерфейсы для геопозиционирования, для управления историей посещений, фоновым потокам на страницах, работе с типизированными массивами и двоичными объектами, объектные базы данных (IndexedDB) и веб-сокеты.

Поскольку с написания этой книги прошло уже три года, интересно посмотреть, насколько сейчас реализованы эти стандарты, потому что автор честно пишет, что некоторые примеры на момент написания книги работали только в каком-нибудь одном браузере, а некоторые не работали нигде.

Последняя третья часть книги — это справочник по базовому языку JavaScript и по клиентскому JavaScript.

Итого. Книга мне очень понравилась, читается она легко, в ней много примеров, достаточно подробно описаны несовместимости разных браузеров. Даже не знаю, к чему придраться кроме объема книги, который она будет занимать на полке. 🙂 В общем, книга на твердую пятерку.

Интересно, планируется ли ее 7-е издание?

Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.

Пожалуйста, оцените запись

УжасноПлохоТак себеХорошоОтлично (Количество голосов: 5, средняя оценка: 5,00)
Загрузка...

Leave a comment

Subscribe without commenting