Глава 1 представляет собой введение в язык JavaScript. Остальная часть книги делится на четыре части. Первая часть, которая непосредственно следует за гла_ вой 1, описывает основы языка JavaScript. Главы со 2 по 6 содержат достаточно скучный материал, тем не менее прочитать его совершенно необходимо, т. к. он охватывает самые основы, без знания которых невозможно начать изучение но_ вого языка программирования:
Предисловие
• Глава 2 «Лексическая структура» описывает основные языковые конструкции.
• Глава 3 «Типы данных и значения» рассказывает о типах данных, поддержи_ ваемых языком JavaScript.
• Глава 4 «Переменные» охватывает темы переменных, областей видимости переменных и всего, что с этим связано.
• Глава 5 «Выражения и операторы» описывает выражения языка JavaScript и документирует каждый оператор, поддерживаемый этим языком програм_ мирования. Поскольку синтаксис JavaScript основан на синтаксисе языка Java, который, в свою очередь, очень многое заимствовал из языков C и C++, программисты, имеющие опыт работы с этими языками, могут лишь вкратце ознакомиться с содержимым этой главы.
• Глава 6 «Инструкции» описывает синтаксис и порядок использования каж_ дой JavaScript_инструкции. Программисты, имеющие опыт работы с языка_ ми C, C++ и Java, могут пропустить не все, но некоторые разделы этой главы.
Последующие шесть глав первой части содержат куда более интересные сведе_ ния. Они также описывают основы языка JavaScript, но охватывают те его час_ ти, которые едва ли вам знакомы, даже если вам приходилось писать на языке C или Java. Если вам требуется настоящее понимание JavaScript, к изучению ма_ териала этих глав следует подходить с особой тщательностью.
• Глава 7 «Объекты и массивы» описывает объекты и массивы языка JavaScript.
• Глава 8 «Функции» рассказывает о том, как определяются функции, как они вызываются, каковы их отличительные особенности в языке JavaScript.
• Глава 9 «Классы, конструкторы и прототипы» касается вопросов объектно_ ориентированного программирования на языке JavaScript. Рассказывается о том, как определяются функции_конструкторы для новых классов объек_ тов и как работает механизм наследования на основе прототипов. Кроме того, продемонстрирована возможность эмулирования традиционных идиом объ_ ектно_ориентированного программирования на языке JavaScript.
• Глава 10 «Модули и пространства имен» показывает, как определяются про_ странства имен в JavaScript_объектах, и описывает некоторые практические приемы, позволяющие избежать конфликтов имен в модулях.
• Глава 11 «Шаблоны и регулярные выражения» рассказывает о том, как ис_ пользовать регулярные выражения в языке JavaScript для выполнения опе_ раций поиска и замены по шаблону.
• Глава 12 «Разработка сценариев для Java_приложений» демонстрирует воз_ можность встраивания интерпретатора JavaScript в Java_приложения и рас_ сказывает, как JavaScript_программы, работающие внутри Java_приложе_ ний, могут обращаться к Java_объектам. Эта глава представляет интерес только для тех, кто программирует на языке Java.
Часть II книги описывает реализацию JavaScript в веб_броузерах. Первые шесть глав рассказывают об основных характеристиках клиентского JavaScript:
• Глава 13 «JavaScript в веб_броузерах» рассказывает об интеграции JavaScript в веб_броузеры. Здесь броузеры рассматриваются как среда программирова_ ния и описываются различные варианты встраивания программного Java_ Script_кода в веб_страницы для исполнения его на стороне клиента.
16 Предисловие
• Глава 14 «Работа с окнами броузера» описывает центральный элемент кли_ ентского языка JavaScript – объект Window и рассказывает, как использовать этот объект для управления окнами броузера.
• Глава 15 «Работа с документами» описывает объект Document и рассказывает, как из JavaScript управлять содержимым, отображаемым в окне броузера. Эта глава является наиболее важной во второй части.
• Глава 16 «CSS и DHTML» рассказывает о порядке взаимодействия между Java_ Script_кодом и таблицами CSS_стилей. Здесь показано, как средствами Java_ Script изменять стили, вид и положение элементов HTML_документа, созда_ вая визуальные эффекты, известные как DHTML.
• Глава 17 «События и обработка событий» описывает события и порядок их обработки, что является немаловажным для программ, ориентированных на взаимодействие с пользователем.
• Глава 18 «Формы и элементы форм» посвящена тому, как работать с HTML_ формами и отдельными элементами форм. Данная глава является логиче_ ским продолжением главы 15, но обсуждаемая тема настолько важна, что была выделена в самостоятельную главу.
Вслед за этими шестью главами следуют пять глав, содержащих более узкоспе_ циализированный материал:
• Глава 19 «Cookies и механизм сохранения данных на стороне клиента» охва_ тывает вопросы хранения данных на стороне клиента для последующего ис_ пользования. В этой главе показано, как средствами HTTP манипулировать cookies и как сохранять их с помощью соответствующих инструментов Inter_ net Explorer и подключаемого Flash_модуля.
• Глава 20 «Работа с протоколом HTTP» демонстрирует, как управлять прото_ колом HTTP из JavaScript_сценариев, как с помощью объекта XMLHttpRequest отправлять запросы веб_серверам и получать от них ответы. Данная возмож_ ность является краеугольным камнем архитектуры веб_приложений, извест_ ной под названием Ajax.
• Глава 21 «JavaScript и XML» описывает, как средствами JavaScript созда_ вать, загружать, анализировать, преобразовывать и сериализовать XML_до_ кументы, а также как извлекать из них данные.
• Глава 22 «Работа с графикой на стороне клиента» рассказывает о средствах JavaScript, ориентированных на работу с графикой. Здесь рассматриваются как простейшие способы создания анимированных изображений, так и дос_ таточно сложные приемы работы с графикой с использованием форматов SVG (Scalable Vector Graphics – масштабируемая векторная графика) и VML (Vector Markup Language – векторный язык разметки), тега <canvas> и под_ ключаемых Flash_ и Java_модулей.
• Глава 23 «Сценарии с Java_апплетами и Flash_роликами» показывает, как организовать взаимодействие JavaScript_кода с Java_апплетами и Flash_ро_ ликами. Кроме того, в ней рассказывается, как обращаться к JavaScript_коду из Java_апплетов и Flash_роликов.
Третья и четвертая части содержат справочный материал соответственно по ба_ зовому и клиентскому языкам JavaScript. Здесь приводятся описания объектов, методов и свойств в алфавитном порядке.