Руководства, Инструкции, Бланки

Javascript Краткое Руководство

Рейтинг: 4.2/5.0 (22 проголосовавших)

Категория: Руководства

Описание

Краткое руководство по React JS

Краткое руководство по React JS

Статья даст вам краткий обзор того, как строятся интерфейсы с помощью React JS.
Вы можете параллельно писать код с помощью starter kit. или просто продолжать читать.

Концепции

React имеет небольшой API, он прост в изучении использовании. Однако, сперва давайте взглянем на несколько концепций.

Элементы — это объекты JavaScript, которые представляют HTML-элементы. Их не существуют в браузере. они описывают DOM-элементы, такие как h1, div, или section.

Компоненты — это элементы React, написаные разработчиком. Обычно это части пользовательского интерфейса, которые содержат свою структуру и функциональность. Например, такие как NavBar, LikeButton, или ImageUploader.

JSX — это техника создания элементов и компонентов React. Например, это React-элемент, написаный на JSX:

Такой же элемент может быть написан на JavaScript:

С JSX требуется гораздо меньше усилий, он трансформируется в JavaScript перед запуском в браузере.

Virtual DOM — это дерево React элементов на JavaScript. React отрисовывает Virtual DOM в браузере, чтоб сделать интерфейс видимым. React следит за изменениями в Virtual DOM и автоматически изменяет DOM в браузере так, чтоб он соответствовал виртуальному.

С пониманием этих концепций мы можем продолжать использовать React. Мы напишем ряд пользовательских интерфейсов, каждый из которых будет добавлять слой функциональности к предыдущему. В качестве примера, мы напишем фото-ленту на подобии Instagram.

Рендеринг

Первым делом происходит рендер виртуального элемента (элемента, или компонента React). Помните, пока виртуальный элемент содержится только в памяти JavaScript. мы должны явно сообщить React отрисовать его в браузере.

Функция render принимает два аргумента: виртуальный элемент и реальный узел DOM. React берёт виртуальный элемент и добавляет его в указанный узел. Теперь изображение можно увидеть в браузере.

Компоненты

Компоненты — это душа и сердце React. Это пользовательские элементы. Обычно, они имеют свою уникальную структуру и функциональность.

Функция createClass принимает объект, который реализует функцию render .
Компонент Photo создан и отрисован в теле документа.

Этот компонент делает не больше, чем строчка в предыдущем примере, но теперь его можно дополнять функциональностью.

Свойства

Под свойствами можно понимать опции компонента. Они предоставляются в качестве аргументов компонента и выглядят так же, как атрибуты HTML.

В функции render компоненту Photo переданы 2 свойства: imageURL и caption .

Внутри пользовательской функции render. свойство imageURL используется в качестве src для изображения. Свойство caption используется как текст элемента span.

Стоит отметить, что свойства компонента неизменяемы. Если у компонента есть изменяемые свойства, используйте состояние.

Состояние

Состояние — это специальный объект внутри компонента. Он хранит данные, которые могут изменятся с течением времени

Наличия состояния у объекта вносит небольшую сложность.
У компонента появляется новая фунцкия getInitialState. React вызывает её после инициализации компонента. В ней устанавливается начальное состояние (что подразумевает название функции).

Также у компонента появляется функция toggleLiked. Она с помощью функции setState. переключает состояние liked .

Внутри функции render. переменной buttonClass присваивается значение «active», либо пустая строка, в зависимости от состояния liked .

buttonClass используется, как класс кнопки элемента. У кнопки также имеется обработчик события onClick, который вызывает функцию toggleLiked .

Вот, что происходит после отрисовки компонента:

— После нажатия кнопки вызывается toggleLiked
— Изменяется состояние liked
— React перерисовывает компонент в Virtual DOM
— Новый Virtual DOM сравнивается с предыдущим
— React изолирует изменения и обновляет их в DOM браузера

В данном случае, React изменит имя класса кнопки.

Композиция

Композиция означает комбинирование меньших компонентов при формировании большего. Например, компонент Photo может быть использован внутри компонента PhotoGallery. Примерно таким образом:

Компонент Photo остался точно таким же, как и был.

Появился новый компонент PhotoGallery. который генерирует компоненты Photo. В примере используются поддельные данные сервера, которые возвращают массив из 3 объектов с url и заголовком.

В цикле создаются 3 компонента Photo, которые затем подставляются в возвращаемое значение функции render .

Заключение

Этого вполне достаточно для того, чтоб начать строить пользовательские интерфейсы с использованием React. Более подробное описание есть в документации и она крайне рекомендуется к прочтению.
В руководстве также не было деталей по настройке локального окружения. Вы можете узнать это из документации, либо использовать мой boilerplate .

Javascript краткое руководство:

  • скачать
  • скачать
  • Другие статьи

    JavaScript для новичков - Программирование, исходники, операционные системы

    JavaScript для новичков ОГЛАВЛЕНИЕ

    Страница 1 из 12

    Краткое руководство по JavaScript для новичков.

    Вложения и включения Давайте сначала рассмотрим простой пример:
    Обычно, код JavaScript начинается с тега <script language="JavaScript"> и заканчивается </script>. Код расположен между <head> и </head>. Иногда программисты вкладывают код в теги <body>:
    Почему же мы располагаем код JavaScript в пределах комментирущих символов <!-- и //-->? Это делается чтобы убедиться в том, что Script не отображается старыми обозревателями, которые не поддерживают JavaScript. Это опционально, но считается хорошим тоном. Атрибут LANGUAGE также является опциональным, но его рекомендуется использовать. Вы можете указать конкретную версию JavaScript:
    Вы можете использовать другой атрибут SRC для включения внешнего файла, содержащего код JavaScript:
    К примеру, указанный ниже код является кодом файла hello.js:
    Внешний файл является простым файлом, содержащим код JavaScript с расширением файла ".js". Учтите:
    1. Включение внешнего файла стабильно включает функции среди платформ обозревателей 4 версии.
    2. Код не может включать теги <script language. > и </script>, иначе вы увидите ошибку.

    • Скачать примеры - 7.04 Кб Оглавление Введение Предпосылки Основные понятия Простой класс на JavaScript Определение класса Создание свойств класса Создание методов класса Инкапсуляция Открытые, защищенные и закрытые члены Инкапсуляция на практике Вывод по инкапсуляции.

    • Скачать исходники - 19.01 KB Введение В данной статье на основе Exsead создается парсер JScript DOM и GUI просмотра XML. Краткая информация о Exsead Etc. Основные принципы устройства Exsead изложены здесь. Чтобы данная статья принесла максимум пользы, следует прочитать статью об использов.

    ВведениеМожно использовать свойство prototype (прототип) некоторых встроенных объектов JavaScript для расширения их функциональности. Новые экземпляры конкретного класса объектов наследуют поведение, заданное классу. Если вы знаете C++, рассматривайте расширенные объекты как производные классы с.

    Рисунок 1. Пример с конкретными цветами, обработанными при помощи VML в Internet Explorer. Рисунок 2. Пример с конкретными цветами, обработанными при помощи холста (canvas) в Firefox. Рисунок 3. Пример, демонстрирующий свернутые и выбранные узлы, обработанные посредством VML в Internet Exp.

    Как узнать ширину и высоту клиентской (рабочей) области окна браузера? <script type="text/javascript">//IE5+, Mozilla 1.0+, Opera 7+function getClientWidth()< return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.

    Javascript краткое руководство

    Книга JavaScript для чайников. Краткое руководство JavaScript для чайников. Краткое руководство


    Название: javascript для чайников. Краткое руководство
    Автор: Рихард Вагнер
    Страниц: 74
    Формат: PDF
    Размер: 36Мб
    Качество: Отличное
    Язык: Болгарский
    Жанр: Программирование
    Год издания: 2011


    Может быть, вы профессиональный веб-дизайнер или даже не хотите быть, но, конечно, вы хотите, чтобы работа, которая будет сделано, и результат выглядит хорошо? Эта книга для вас. Создание веб-страниц не сложно. Эта книга покажет вам, как использовать javascript, разъяснения на простом языке.

    Откройте книгу и найти:
    Как работать скрипты
    Как программировать на javascript
    Как использовать библиотеки и среды javascript
    Объектной модели документа
    Как добавить обработчики событий
    Советы для написания скриптов
    Ajax

    С этой книгой бесплатно скачивают:

    dvdrip 2,36 gb - Андрей жариков

    смешанный 12 мб - Флэнаган Дэвид

    djvu 15,74 мб - Flanagan D / Дэвид Флэнаган

    pdf 5,6 mb - Дэвид Флэнаган

    pdf, djvu 532 мб - Разные

    Электронная библиотека Kodges.ru — интересный ресурс для тех, кто не любит тратить много времени на поиск необходимого издания. В каталогах представлено огромное количество книг различной тематики, которые можно скачать совершенно бесплатно в нужном формате. В разделе «Компьютерная литература» можно скачать как книги для профессионалов, так и книги с ответами на популярные вопросы, например, «JavaScript для чайников. Краткое руководство». Благодаря удобной навигации библиотеки, каждый читатель моментально найдет необходимое издание.

    Поделитесь ссылкой на книгу со своими друзьями:


    Ссылка для форумов:

    Просмотров: 716 | Комментарии (0)

    Навигация по сайту

  • © 2006 - 2016 KodGes.RU

  • Мир вокруг нас: Основы программирования на JavaScript

    Новый интересный курс на замечательном ресурсе .
    В связи с тем, что в последнее время стал часто сталкиваться с необходимостью напиcания фрагментов кода на javascript, данный метериал представляет определенный интерес.
    Цитата.
    " Технология AJAX является не новым языком программирования, а просто новым способом использования существующих стандартов.

    С помощью AJAX можно создавать Web-приложения, которые будут лучше, быстрее и удобнее для пользователей, чем существующие.

    AJAX основывается на JavaScript и запросах HTTP.
    AJAX = Асинхронный JavaScript и XML

    AJAX является сокращением от "Asynchronous JavaScript And XML" (Асинхронный JavaScript и XML).

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

    AJAX использует JavaScript для отправки и получения данных при взаимодействии Web-браузера и Web-сервера.

    Технология AJAX делает Web-страницы более гибкими и быстро реагирующими, осуществляя обмен данными с Web-сервером в фоновом режиме, а не перезагружая всю Web-страницу всякий раз, когда пользователь делает изменение. "

    Скачать книги по JavaScript, учебники по программированию на Javascript

    Книги по JavaScript

    • Оригинальное название: Learning ECMAScript 6
    • Автор: Нараян Прасти
    • Издательство: ДМК Пресс
    • Год: 2016
    • Язык: Русский
    • ISBN: 978-5-97060-392-5, 978-1-78588-444-3
    • Страниц: 176
    • Формат: pdf
    • Размер: 43 Мб

    Описание книги Введение в ECMAScript 6.
    Данная книга содержит пошаговые инструкции по использований новых возможностей ECMAScript 6 вместо устаревших трюков и приемов программирования на JavaScript.Книга начинается с знакомства со всеми встроенными объектами ES6 и описания создания итераторов ES6.

    Скачать книгу 28 марта 2016 09:19 | Просмотров: 3734

    Описание книги Node.js. Путеводитель по технологии.
    За последние несколько лет платформа Node.js стремительно повысила свой статус от экспериментальной технологии до основы для серьезных промышленных проектов. Тысячи программистов оценили возможность построения достаточно сложных, высоко нагруженных приложений на простом, элегантном и, самое главное, легковесном механизме.

    Скачать книгу 27 марта 2016 17:49 | Просмотров: 2576

    Описание книги HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера.
    Рассмотрены вопросы создания интерактивных Web-сайтов с помощью НТML, javascript, PHP и MySQL, форматирования Web-страниц при помощи CSS. Даны основы РНР и примеры написания типичных сценариев. Описаны приемы работы и администрирования баз данных MySQL при помощи РНР и npoграммы phpMyAdmin. Особое внимание уделено созданию программной среды на компьютере разработчика и настройке Web-сервера Apache. Приведено описание текстового редактора Notepad++, шаблонизатора Smarty и прочих программ (Аptana Studio, NetBeans и HeidiSQL), необходимых Web-разработчику.

    Скачать книгу 5 октября 2015 16:49 | Просмотров: 22544

    • Оригинальное название: JavaScript: The Web Warrior Series
    • Шестое издание
    • Автор: Don Gosselin, Sasha Vodnik
    • Издательство: Cengage Learning
    • Год: 2014
    • Язык: Английский
    • ISBN: 978-1305078444
    • Страниц: 957
    • Формат: pdf
    • Размер: 55 Мб

    Описание книги JavaScript: The Web Warrior Series.
    Now in its sixth edition, javascript guides beginning programmers through web application development using the javascript programming language.

    Скачать книгу 6 августа 2015 18:37 | Просмотров: 2386

    Javascript краткое руководство

    JavaScript. Подробное руководство Флэнаган Д. "JavaScript. Подробное руководство", Символ-Плюс, 2012 год,1080 стр, ил. (15,7 мб,.djvu)

    JavaScript язык сценариев широко используемый WEB дизайнерами для придания динамичности и интерактивности веб приложениям. Является основой технологии AJAX. JavaScript также может быть использован при создании прикладных программ, мобильных приложений, виджетов, серверных приложений, браузерных операционных системах. Например - WebOS.

    Арифметические выражения деления и вычитания, поэтому они будут рассмотрены первыми. Оператор сложения будет описан в собственном подразделе, потому что он также выполняет операцию конкатенации строк и использует некоторые необычные правила преобразования типов. Унарные и поразрядные операторы также будут рассматриваться в отдельных подразделах. Основными арифметическими операторами являются * (умножение), / (деление), % (деление по модулю: остаток от деления), + (сложение) и - (вычитание). Как уже отмечалось, оператор + будет рассматриваться в отдельном разделе.

    Другие основные четыре оператора просто определяют значения своих операндов, преобразуют их значения в числа, если это необходимо, и вычисляют произведение, частное, остаток или разность значений. Нечисловые операнды, которые не могут быть преобразованы в числа, преобразуются в значение NaN. Если какой-либо из операндов имеет (или преобразуется в) значение NaN, результатом операции также будет значение NaN.

    Оператор / делит первый операнд на второй. Если вам приходилось работать с языками программирования, в которых целые и вещественные числа относятся к разным типам, вы могли бы ожидать получить целый результат от деления одного целого числа на другое целое число. Однако в языке JavaScript все числа являются вещественными, поэтому все операции деления возвращают вещественный результат: выражение 5/2 вернет 2.5, а не 2. Деление на ноль возвращает положительную или отрицательную бесконечность, тогда как выражение 0/0 возвращает NaN; ни в одном из этих случаев не возбуждается исключение.

    Оператор % производит деление по модулю первого операнда на второй. Иными словами, он возвращает остаток от целочисленного деления первого операнда на второй. Знак результата определяется знаком первого операнда. Например, выражение 5 % 2 вернет 1, а выражение -5 % 2 вернет -1. Несмотря на то что оператор по модулю обычно применяется к целым числам, он также может оперировать вещественными значениями. Например, выражение 6.5 % 2.1 вернет 0,2. Двухместный оператор + складывает числовые операнды или выполняет конкатенацию строковых операндов: Когда значениями обоих операндов являются числа или строки, результат действия оператора + очевиден.

    Однако в других случаях возникает необходимость преобразования типов, выполняемая операция зависит от результатов преобразований. В соответствии с правилами преобразований оператор + отдает предпочтение операции конкатенации строк: если один изоперандов является строкой или объектом, который может быть преобразован в строку, другой операнд также преобразуется в строку, после чего выполняется операция конкатенации строк.Операция сложения выполняется, только если ни один из операндов не является строкой.Формально оператор + использует следующий алгоритм работы:
    4.8.1. Оператор +
    1 + 2
    "hello" + " " + "there" "Г + "2"
    // => 3
    // => "hello there" // => "12"

    Оглавление
    Предисловие 17

    1.Введение в JavaScript .21
    1.1. Базовый JavaScript 25
    1.2.Клиентский JavaScript 29
    1.2.1. Пример: калькулятор платежей по ссуде на JavaScript .33
    1. Базовый JavaScript 39

    2. Лексическая структура .41
    2.1. Набор символов .41
    2.1.1.Чувствительность к регистру 41
    2.1.2. Пробелы, переводы строк и символы управления форматом 42
    2.1.3. Экранированные последовательности Юникода. 42
    2.1.4. Нормализация .43
    2.2. Комментарии .43
    2.3. Литералы 43
    2.4. Идентификаторы и зарезервированные слова 44
    2.4.1. Зарезервированные слова 44
    2.5. Необязательные точки с запятой .46

    3. Типы данных, значения и переменные .49
    3.1. Числа 51
    3.1.1. Целые литералы .52
    3.1.2. Литералы вещественных чисел .52
    3.1.3. Арифметические операции в JavaScript 53
    3.1.4. Двоичное представление вещественных чисел и ошибки округления 55
    3.1.5. Дата и время .56
    3.2. Текст .56
    3.2.1. Строковые литералы .56
    3.2.2. Управляющие последовательности в строковых литералах 58
    3.2.3. Работа со строками .59
    3.2.4. Сопоставление с шаблонами .60
    3.3. Логические значения 61
    3.4. Значения null и undefined 62
    3.5. Глобальный объект .63
    3.6. Объекты-обертки .64
    3.7. Неизменяемые простые значения и ссылки на изменяемые объекты .65
    3.8. Преобразование типов .67
    3.8.1. Преобразования и равенство .68
    3.8.2. Явные преобразования 69
    3.8.3. Преобразование объектов в простые значения 71
    3.9. Объявление переменных .74
    3.9.1 Повторные и опущенные объявления .74
    3.10. Область видимости переменной .75
    3.10.1. Область видимости функции и подъем .76
    3.10.2. Переменные как свойства .77
    3.10.3 Цепочки областей видимости 78

    4. Выражения и операторы .79
    4.1. Первичные выражения .79
    4.2. Инициализаторы объектов и массивов .80
    4.3. Выражения определений функций .81
    4.4. Выражения обращения к свойствам. 82
    4.5. Выражения вызова .83
    4.6. Выражения создания объектов .84
    4.7. Обзор операторов .84
    4.7.1. Количество операндов .86
    4.7.2. Типы данных операндов и результата .86
    4.7.3. Левосторонние выражения 86
    4.7.4. Побочные эффекты операторов .87
    4.7.5. Приоритет операторов. 87
    4.7.6. Ассоциативность операторов .88
    4.7.7. Порядок вычисления .88
    4.8. Арифметические выражения .88
    4.8.1. Оператор + .89
    4.8.2. Унарные арифметические операторы .90
    4.8.3. Поразрядные операторы .91
    4.9. Выражения отношений .93
    4.9.1. Операторы равенства и неравенства .93
    4.9.2. Операторы сравнения .95
    4.9.3. Оператор in. 97
    4.9.4. Оператор instanceof. 97
    4.10. Логические выражения .98
    4.10.1. Логическое И (&&) .98
    4.10.2. Логическое ИЛИ (||). 99
    4.10.3. Логическое НЕ (!) 100
    4.11. Выражения присваивания. 100
    4.11.1. Присваивание с операцией .101
    4.12. Вычисление выражений .102
    4.12.1. eval() .103
    4.12.2. Использование eval() в глобальном контексте 103
    4.12.3. Использование eval() в строгом режиме. 104
    4.13. Прочие операторы .105
    4.13.1. Условный оператор (?:). 105
    4.13.2. Оператор typeof 105
    4.13.3. Оператор delete .107
    4.13.4. Оператор void .108
    4.13.5. Оператор «запятая» (,). 108

    5. Инструкции 109
    5.1. Инструкции-выражения. 110
    5.2. Составные и пустые инструкции .110
    5.3. Инструкции-объявления. 112
    5.3.1. Инструкция var .112
    5.3.2. Инструкция function 113
    5.4. Условные инструкции. 114
    5.4.1. Инструкция if .114
    5.4.2. Инструкция else if .116
    5.4.3. Инструкция switch .117
    5.5. Циклы. 119
    5.5.1. Инструкция while .119
    5.5.2. Инструкция do/while. 120
    5.5.3. Инструкция for. 121
    5.5.4. Инструкция for/in. 122
    5.6. Переходы. 124
    5.6.1. Метки инструкций. 124
    5.6.2. Инструкция break .125
    5.6.3. Инструкция continue. 126
    5.6.4. Инструкция return. 127
    5.6.5. Инструкция throw. 128
    5.6.6. Инструкция try/catch/finally .129
    5.7. Прочие инструкции. 131
    5.7.1. Инструкция with. 131
    5.7.2. Инструкция debugger. 132
    5.7.3. "use strict". 133
    5.8. Итоговая таблица JavaScript-инcтрукций. 135

    6. Объекты. 137
    6.1. Создание объектов .139
    6.1.1. Литералы объектов 139
    6.1.2. Создание объектов с помощью оператора new 140
    6.1.3. Прототипы. 140
    6.1.4. Object.create(). 141
    6.2. Получение и изменение свойств 142
    6.2.1. Объекты как ассоциативные массивы .143
    6.2.2. Наследование 144
    6.2.3. Ошибки доступа к свойствам 145
    6.3. Удаление свойств .147
    6.4. Проверка существования свойств 148
    6.5. Перечисление свойств 149
    6.6. Методы чтения и записи свойств 152
    6.7. Атрибуты свойств 154
    6.7.1. Устаревшие приемы работы с методами чтения и записи 157
    6.8. Атрибуты объекта 158
    6.8.1. Атрибут prototype 158
    6.8.2. Атрибут class 159
    6.8.3. Атрибут extensible 160
    6.9. Сериализация объектов 161
    6.10. Методы класса Object 162
    6.10.1. Метод toString() .162
    6.10.2. Метод toLocaleStringQ 163
    6.10.3. Метод toJSON(). 163
    6.10.4. Метод valueOf(). 163

    7. Массивы. 164
    7.1. Создание массивов 165
    7.2. Чтение и запись элементов массива 166
    7.3. Разреженные массивы 167
    7.4. Длина массива 168
    7.5. Добавление и удаление элементов массива .169
    7.6. Обход элементов массива. 170
    7.7. Многомерные массивы .171
    7.8. Методы класса Array. 172
    7.8.1. Метод joinO. 172
    7.8.2. Метод reverse() 172
    7.8.3. Метод sort(). 173
    7.8.4. Метод concat(). 173
    7.8.5. Метод slice(). 174
    7.8.6. Метод spliceO. 174
    7.8.7. Методы push() и рор(). 175
    7.8.8. Методы unshift() и shift(). 175
    7.8.9. Методы toStringO и toLocaleStringO. 176
    7.9. Методы класса Array, определяемые стандартом ECMAScript 5. 176
    7.9.1. Метод forEach(). 176
    7.9.2. Метод шар() 177
    7.9.3. Метод filter() .177
    7.9.4. Методы every() и some(). 178
    7.9.5. Методы reduce() и reduceRight(). 178
    7.9.6. Методы indexOf() и lastIndexOf(). 180
    7.10. Тип Array. 181
    7.11. Объекты, подобные массивам 182
    7.12. Строки как массивы 184

    8 Функции 185
    8.1. Определение функций .185
    8.1.1. Вложенные функции. 188
    8.2. Вызов функций 189
    8.2.1. Вызов функций. 189
    8.2.2. Вызов методов .190
    8.2.3. Вызов конструкторов .192
    8.2.4. Косвенный вызов .193
    8.3. Аргументы и параметры функций .193
    8.3.1. Необязательные аргументы 193
    8.3.2. Списки аргументов переменной длины: объект Arguments 194
    8.3.3. Использование свойств объекта в качестве аргументов 196
    8.3.4. Типы аргументов 197
    8.4. Функции как данные 198
    8.4.1. Определение собственных свойств функций. 200
    8.5. Функции как пространства имен. 201
    8.6. Замыкания .203
    8.7. Свойства и методы функций и конструктор Function 209
    8.7.1. Свойство length .209
    8.7.2. Свойство prototype. 209
    8.7.3. Методы call() и арр1у(). 210
    8.7.4. Метод bind() .211
    8.7.5. Метод toString(). 213
    8.7.6. Конструктор Function(). 213
    8.7.7. Вызываемые объекты 214
    8.8. Функциональное программирование .215
    8.8.1. Обработка массивов с помощью функций. 215
    8.8.2. Функции высшего порядка. 217
    8.8.3. Частичное применение функций. 218
    8.8.4. Мемоизация. 220

    9. Классы и модули .221
    9.1. Классы и прототипы. 222
    9.2. Классы и конструкторы .223
    9.2.1. Конструкторы и идентификация класса. 225
    9.2.2. Свойство constructor .226
    9.3. Классы в стиле Java. 227
    9.4. Наращивание возможностей классов .231
    9.5. Классы и типы. 232
    9.5.1. Оператор instanceof. 232
    9.5.2. Свойство constructor .233
    9.5.3. Имя конструктора. 234
    9.5.4. Грубое определение типа. 235
    9.6. Приемы объектно-ориентированного программирования в JavaScript .238
    9.6.1. Пример: класс множества .238
    9.6.2. Пример: типы-перечисления. 239
    9.6.3. Стандартные методы преобразований. 242
    9.6.4. Методы сравнения. 244
    9.6.5. Заимствование методов .247
    9.6.6. Частные члены .249
    9.6.7. Перегрузка конструкторов и фабричные методы .250
    9.7. Подклассы .252
    9.7.1. Определение подкласса 252
    9.7.2. Вызов конструктора и методов базового класса .254
    9.7.3. Композиция в сравнении с наследованием .256
    9.7.4. Иерархии классов и абстрактные классы .258
    9.8. Классы в ECMAScript 5. 262
    9.8.1. Определение неперечислимых свойств .262
    9.8.2. Определение неизменяемых классов. 263
    9.8.3. Сокрытие данных объекта. 265
    9.8.4. Предотвращение расширения класса .266
    9.8.5. Подклассы и ECMAScript 5. 267
    9.8.6. Дескрипторы свойств. 268
    9.9. Модули. 270
    9.9.1. Объекты как пространства имен. 271
    9.9.2. Область видимости функции как частное пространство имен. 273

    10. Шаблоны и регулярные выражения. 276
    10.1. Определение регулярных выражений. 276
    10.1.1. Символы литералов. 277
    10.1.2. Классы символов. 278
    10.1.3. Повторение. 279
    10.1.4. Альтернативы, группировка и ссылки. 281
    10.1.5. Указание позиции соответствия .283
    10.1.6. Флаги. 284
    10.2. Методы класса String для поиска по шаблону. 285
    10.3. Объект RegExp. 287
    10.3.1. Свойства RegExp. 288
    10.3.2. Методы RegExp. 288

    11. Подмножества и расширения JavaScript. 290
    11.1. Подмножества JavaScript. 291
    11.1.1. Подмножество The Good Parts. 291
    11.1.2. Безопасные подмножества. 292
    11.2. Константы и контекстные переменные. 295
    11.3. Присваивание с разложением. 298
    11.4. Итерации. 300
    11.4.1. Цикл for/each. 300
    11.4.2. Итераторы. 301
    11.4.3. Генераторы. 303
    11.4.4. Генераторы массивов. 307
    11.4.5. Выражения-генераторы. 308
    11.5. Краткая форма записи функций .309
    11.6. Множественные блоки catch .309
    11.7. Е4Х: ECMAScript for XML. 310

    12. Серверный JavaScript .314
    12.1. Управление Java с помощью Rhino .315
    12.1.1. Пример использования Rhino .319
    12.2. Асинхронный ввод/вывод в интерпретаторе Node 321
    12.2.1. Пример использования Node: HTTP-сервер 327
    12.2.2. Пример использования Node: модуль утилит клиента HTTP. 329

    II. Клиентский JavaScript 331

    13. JavaScript в веб-браузерах .333
    13.1. Клиентский JavaScript. 333
    13.1.1. Сценарии JavaScript в веб-документах .336
    13.1.2. Сценарии JavaScript в веб-приложениях 336
    13.2. Встраивание JavaScript-код а в разметку HTML. 337
    13.2.1. Элемент <script>. 338
    13.2.2. Сценарии во внешних файлах. 339
    13.2.3. Тип сценария. 340
    13.2.4. Обработчики событий в HTML. 341
    13.2.5. JavaScript в URL. 342
    13.3. Выполнение JavaScript-nporpaMM. 344
    13.3.1. Синхронные, асинхронные и отложенные сценарии. 345
    13.3.2. Выполнение, управляемое событиями. 347
    13.3.3. Модель потоков выполнения в клиентском JavaScript. 349
    13.3.4. Последовательность выполнения клиентских сценариев. 350
    13.4. Совместимость на стороне клиента. 352
    13.4.1. Библиотеки обеспечения совместимости. 356
    13.4.2. Классификация броузеров .356
    13.4.3. Проверка особенностей. 357
    13.4.4. Режим совместимости и стандартный режим. 358
    13.4.5. Проверка типа броузера. 358
    13.4.6. Условные комментарии в Internet Explorer. 359
    13.5. Доступность. 360
    13.6. Безопасность. 361
    13.6.1. Чего не может JavaScript .362
    13.6.2. Политика общего происхождения .363
    13.6.3. Взаимодействие с модулями расширения и элементами управления ActiveX. 365
    13.6.4. Межсайтовый скриптинг. 365
    13.6.5. Атаки типа отказа в обслуживании .367
    13.7. Клиентские фреймворки. 367

    14. Объект Window. 369
    14.1. Таймеры .370
    14.2. Адрес документа и навигация по нему. 371
    14.2.1. Анализ URL. 371
    14.2.2. Загрузка нового документа 372
    14.3. История посещений .373
    14.4. Информация о броузере и об экране .374
    14.4.1. Объект Navigator. 374
    14.4.2. Объект Screen 377
    14.5. Диалоги .377
    14.6. Обработка ошибок. 379
    14.7. Элементы документа как свойства окна .380
    14.8. Работа с несколькими окнами и фреймами 382
    14.8.1. Открытие и закрытие окон .383
    14.8.2. Отношения между фреймами .385
    14.8.3. JavaScript во взаимодействующих окнах. 387

    15. Работа с документами 390
    15.1. Обзор модели DOM. 390
    15.2. Выбор элементов документа. 393
    15.2.1. Выбор элементов по значению атрибута id 393
    15.2.2. Выбор элементов по значению атрибута name .394
    15.2.3. Выбор элементов по типу. 395
    15.2.4. Выбор элементов по классу CSS. 397
    15.2.5. Выбор элементов с использованием селекторов CSS. 398
    15.2.6. document.all[]. 400
    15.3. Структура документа и навигация по документу .401
    15.3.1. Документы как деревья узлов. 401
    15.3.2. Документы как деревья элементов. 402
    15.4. Атрибуты. 405
    15.4.1. HTML-атрибуты как свойства объектов Element .405
    15.4.2. Доступ к нестандартным HTML-атрибутам .406
    15.4.3. Атрибуты с данными. 407
    15.4.4. Атрибуты как узлы типа Attr. 408
    15.5. Содержимое элемента. 409
    15.5.1. Содержимое элемента в виде HTML. 409
    15.5.2. Содержимое элемента в виде простого текста. 410
    15.5.3. Содержимое элемента в виде текстовых узлов. 411
    15.6. Создание, вставка и удаление узлов. 412
    15.6.1. Создание узлов. 413
    15.6.2. Вставка узлов. 413
    15.6.3. Удаление и замена узлов .415
    15.6.4. Использование объектов DocumentFragment .416
    15.7. Пример: создание оглавления. 418
    15.8. Геометрия документа и элементов и прокрутка. 421
    15.8.1. Координаты документа и видимой области 421
    15.8.2. Определение геометрии элемента. 423
    15.8.3. Определение элемента в указанной точке .424
    15.8.4. Прокрутка. 425
    15.8.5. Подробнее о размерах, позициях и переполнении элементов. 426
    15.9. HTML-формы. 428
    15.9.1. Выбор форм и элементов форм. 430
    15.9.2. Свойства форм и их элементов .431
    15.9.3. Обработчики событий форм и их элементов .432
    15.9.4. Кнопки. 433
    15.9.5. Переключатели и флажки. 434
    15.9.6. Текстовые поля ввода. 434
    15.9.7. Элементы Select и Option. 435
    15.10. Другие особенности документов. 437
    15.10.1. Свойства объекта Document. 437
    15.10.2. Метод document.writeO. 438
    15.10.3. Получение выделенного текста .440
    15.10.4. Редактируемое содержимое 441

    16. Каскадные таблицы стилей 444
    16.1. Обзор CSS. 445
    16.1.1. Каскад правил 446
    16.1.2. История развития CSS. 447
    16.1.3. Сокращенная форма определения свойств 447
    16.1.4. Нестандартные свойства .447
    16.1.5. Пример CSS-таблицы 448
    16.2. Наиболее важные CSS-свойства 450
    16.2.1. Позиционирование элементов с помощью CSS 451
    16.2.2. Рамки, поля и отступы .454
    16.2.3. Блочная модель и детали позиционирования в CSS 455
    16.2.4. Отображение и видимость элементов 457
    16.2.5. Цвет, прозрачность и полупрозрачность 458
    16.2.6. Частичная видимость: свойства overflow и clip 459
    16.2.7. Пример: перекрытие полупрозрачных окон 460
    16.3. Управление встроенными стилями 463
    16.3.1. Создание анимационных эффектов средствами CSS .465
    16.4. Вычисленные стили 468
    16.5. CSS-классы 470
    16.6. Управление таблицами стилей 472
    16.6.1. Включение и выключение таблиц стилей .472
    16.6.2. Получение, вставка и удаление правил из таблиц стилей .473
    16.6.3. Создание новых таблиц стилей .474

    17. Обработка событий .476
    17.1. Типы событий. 479
    17.1.1. Старые типы событий. 479
    17.1.2. События модели DOM. 485
    17.1.3. События HTML5 .486
    17.1.4. События, генерируемые сенсорными экранами и мобильными устройствами. 488
    17.2. Регистрация обработчиков событий. 489
    17.2.1. Установка свойств обработчиков событий .489
    17.2.2. Установка атрибутов обработчиков событий. 490
    17.2.3. addEventListener() .491
    17.2.4. attachEvent(). 492
    17.3. Вызов обработчиков событий. 492
    17.3.1. Аргумент обработчика событий. 493
    17.3.2. Контекст обработчиков событий. 493
    17.3.3. Область видимости обработчика событий 494
    17.3.4. Возвращаемые значения обработчиков .495
    17.3.5. Порядок вызова .495
    17.3.6. Распространение событий .496
    17.3.7. Отмена событий. 497
    17.4. События загрузки документа. 498
    17.5. События мыши. 500
    17.6. События колесика мыши. 504
    17.7. События механизма буксировки (drag-and-drop). 508
    17.8. События ввода текста .515
    17.9. События клавиатуры. 518

    18. Работа с протоколом HTTP. 524
    18.1. Использование объекта XMLHttpRequest .527
    18.1.1. Выполнение запроса .529
    18.1.2. Получение ответа. 531
    18.1.3. Оформление тела запроса. 535
    18.1.4. События, возникающие в ходе выполнения HTTP-запроса. 541
    18.1.5. Прерывание запросов и предельное время ожидания. 544
    18.1.6. Выполнение междоменных HTTP-запросов. 545
    18.2. Выполнение HTTP-запросов с помощью <script>: JSONP. 548
    18.3. Архитектура Comet на основе стандарта «Server-Sent Events». 550

    19. Библиотека jQuery. 556
    19.1. Основы jQuery. 557
    19.1.1. Функция jQuery(). 558
    19.1.2. Запросы и результаты запросов. 562
    19.2. Методы чтения и записи объекта jQuery. 565
    19.2.1. Чтение и запись значений HTML-атрибутов .565
    19.2.2. Чтение и запись значений CSS-атрибутов. 566
    19.2.3. Чтение и запись CSS-классов. 566
    19.2.4. Чтение и запись значений элементов HTML-форм. 567
    19.2.5. Чтение и запись содержимого элемента. 568
    19.2.6. Чтение и запись параметров геометрии элемента. 568
    19.2.7. Чтение и запись данных в элементе. 570
    19.3. Изменение структуры документа. 571
    19.3.1. Вставка и замена элементов. 571
    19.3.2. Копирование элементов. 573
    19.3.3. Обертывание элементов. 574
    19.3.4. Удаление элементов. 574
    19.4. Обработка событий с помощью библиотеки jQuery. 575
    19.4.1. Простые методы регистрации обработчиков событий .575
    19.4.2. Обработчики событий в библиотеке jQuery .577
    19.4.3. Объект Event в библиотеке jQuery .577
    19.4.4. Дополнительные способы регистрации обработчиков событий .579
    19.4.5. Удаление обработчиков событий. 580
    19.4.6. Возбуждение событий. 582
    19.4.7. Реализация собственных событий .584
    19.4.8. Динамические события .584
    19.5. Анимационные эффекты .586
    19.5.1. Простые эффекты. 588
    19.5.2. Реализация собственных анимационных эффектов .589
    19.5.3. Отмена, задержка и постановка эффектов в очередь .593
    19.6. Реализация Ajax в библиотеке jQuery. 595
    19.6.1. Метод load(). 595
    19.6.2. Вспомогательные функции поддержки Ajax .597
    19.6.3. Функция jQuery.ajaxO .602
    19.6.4. События в архитектуре Ajax .608
    19.7. Вспомогательные функции .610
    19.8. Селекторы и методы выбора в библиотеке jQuery. 613
    19.8.1. Селекторы jQuery. 613
    19.8.2. Методы выбора .618
    19.9. Расширение библиотеки jQuery с помощью модулей расширений. 622
    19.10. Библиотека jQuery UI. 625

    20. Сохранение данных на стороне клиента. 627
    20.1. Объекты localStorage и sessionStorage .630
    20.1.1. Срок хранения и область видимости. 630
    20.1.2. Прикладной программный интерфейс объекта Storage. 632
    20.1.3. События объекта Storage .633
    20.2. Cookies. 634
    20.2.1. Атрибуты cookie: срок хранения и область видимости. 635
    20.2.2. Сохранение cookies .637
    20.2.3. Чтение cookies. 638
    20.2.4. Ограничения cookies. 639
    20.2.5. Реализация хранилища на основе cookies. 639
    20.3. Механизм сохранения userData в IE. 641
    20.4. Хранилище приложений и автономные веб-приложения. 643
    20.4.1. Объявление кэшируемого приложения .643
    20.4.2. Обновление кэша. 645
    20.4.3. Автономные веб-приложения. 650

    21. Работа с графикой и медиафайлами на стороне клиента .655
    21.1. Работа с готовыми изображениями. 656
    21.1.1. Ненавязчивая реализация смены изображений 657
    21.2. Работа с аудио- и видеопотоками .658
    21.2.1. Выбор типа и загрузка 659
    21.2.2. Управление воспроизведением 660
    21.2.3. Определение состояния мультимедийных элементов. 661
    21.2.4 События мультимедийных элементов. 663
    21.3. SVG - масштабируемая векторная графика. 665
    21.4. Создание графики с помощью элемента <canvas> .672
    21.4.1. Рисование линий и заливка многоугольников. 675
    21.4.2. Графические атрибуты. 678
    21.4.3. Размеры и система координат холста. 679
    21.4.4. Преобразование системы координат .680
    21.4.5. Рисование и заливка кривых. 685
    21.4.6. Прямоугольники. 687
    21.4.7. Цвет, прозрачность, градиенты и шаблоны. 687
    21.4.8. Атрибуты рисования линий. 691
    21.4.9. Текст. 692
    21.4.10. Отсечение. 693
    21.4.11. Тени. 695
    21.4.12. Изображения. 696
    21.4.13. Композиция. 698
    21.4.14. Манипулирование пикселами. 701
    21.4.15. Определение попадания. 703
    21.4.16. Пример использования элемента <canvas>: внутристрочные диаграммы. 704

    22. Прикладные интерфейсы HTML5. 706
    22.1. Геопозиционирование .707
    22.2. Управление историей посещений. 711
    22.3. Взаимодействие документов с разным происхождением. 716
    22.4. Фоновые потоки выполнения. 720
    22.4.1. Объект Worker. 721
    22.4.2. Область видимости фонового потока .722
    22.4.3. Примеры использования фоновых потоков. 725
    22.5. Типизированные массивы и буферы. 728
    22.6. Двоичные объекты. 732
    22.6.1. Файлы как двоичные объекты. 734
    22.6.2. Загрузка двоичных объектов. 735
    22.6.3. Конструирование двоичных объектов. 736
    22.6.4. URL-адреса, ссылающиеся на двоичные объекты. 736
    22.6.5. Чтение двоичных объектов. 739
    22.7. Прикладной интерфейс к файловой системе .742
    22.8. Базы данных на стороне клиента 747
    22.9. Веб-сокеты. 755

    III. Справочник по базовому JavaScript. 759
    Справочник по базовому JavaScript .761

    IV. Справочник по клиентскому JavaScript .881
    Справочник по клиентскому JavaScript. 883
    Алфавитный указатель. 1040

    Похожая техническая литература