JavaScript для детей — страница 48 из 48

для работы с элементами DOM на веб-странице.

Null —специальное значение, благодаря которому мы видим, что пере-

менная намеренно оставлена пустой.

Prototype —свойство конструктора. Методы, добавленные к свойству

prototype, становятся доступны всем объектам, созданным через этот

конструктор.

Undefi ned —специальное значение, которое JavaScript использует,

чтобы показать, что некоему свойству или переменной не было присво-

ено конкретное значение.

О Б А В Т О Р Е

Ник Морган — фронтенд-разработчик в компании Twitter. Он любит все

языки программирования, но к JavaScript питает особую нежность. Ник

живет в Сан-Франциско (в его туманной части) со своей невестой и их

пушистой собакой Оладушком. Ник ведет блог по адресу skilldrick.co.uk.

О художнике

Миран Липовача — автор книги «Изучай Haskell во имя добра!» (изда-

тельство «ДМК-Пресс», 2012). Он обожает боксировать, играть на бас-

гитаре и, разумеется, рисовать. Он неравнодушен к танцующим скеле-

там и числу 71, а проходя через автоматические двери, делает вид, будто

открывает их силой разума.

О техническом редакторе

Перевод статьи Ангус Кролл — автор статьи «Если бы Хемингуэй писал на JavaScript»,

можно почитать и он в равной мере одержим языком JavaScript и литературой. Ангус

здесь: https://

работает в Twitter, в команде UI-фреймворков, и является одним из авто-

m.habrahabr.ru/

ров фреймворка Flight. Он ведет авторитетный блог JavaScript, JavaScript

post/183838/

?mobile=yes

и выступает на конференциях по всему миру.

286

Б Л А Г О Д А Р Н О С Т И

Тысяча благодарностей моей невесте Филли за помощь и поддержку

в течение последних 18 месяцев. Без нее я бы действительно не спра-

вился. И спасибо Оладушку, нашему песику, за великодушное разреше-

ние использовать его имя в примерах кода.

Спасибо Ангусу — если бы не он, я не сидел бы здесь, в Сан-

Франциско, работая над этой книгой. Ангус порекомендовал меня ком-

пании Twitter в 2011 году, а в 2013 году сказал Биллу Поллоку, что идея

написать книгу, которую вы держите сейчас в руках, может меня заинте-

ресовать. И в довершение он согласился быть техническим редактором,

выловив из текста немалое количество JavaScript-ляпсусов.

Спасибо Биллу Поллоку, Сефу Крамеру, Рили Хоффман, Тайлеру

Ортману и остальным сотрудникам издательства No Starch Press, кото-

рые терпеливо помогали мне писать эту книгу. Особая благодарность

Биллу и Сефу за помощь в приведении первоначального текста к его

нынешнему виду.

Спасибо юным рецензентам Ривер Брэдли, Дэмиену Чемпу и Алексу

Чу, от которых я получил ценный отклик по ранним версиям книги.

И наконец, спасибо Мирану Липоваче. Я давний его поклонник:

книга Мирана «Изучай Haskell во имя добра!» — одна из моих любимых

книг по программированию, а его иллюстрации к ней просто велико-

лепны. Когда я узнал, что он будет иллюстратором моей книги, я был

на седьмом небе от радости. Картинки, которые Миран нарисовал для

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

выпала удача с ним работать.

287

Издание для досуга

Для широкого круга читателей

Морган Ник

JavaScript для детей

Самоучитель по программированию

Главный редактор Артем Степанов

Руководитель направления Анастасия Троян

Ответственный редактор Анна Дружинец

Литературный редактор Лев Эйделькинд

Научный редактор Дарья Абрамова

Дизайн обложки Сергей Хозин

Верстка Надежда Кудрякова, Елена Бреге

Корректоры Юлия Молокова, Надежда Болотина

Document Outline

ВВЕДЕНИЕ

ЧАСТЬ I. Основы

1. ЧТО ТАКОЕ JAVASCRIPT?

Знакомьтесь: JavaScript

Зачем изучать JavaScript?

Пробуем JavaScript

Строение JavaScript-программы

Что мы узнали

2. ТИПЫ ДАННЫХ И ПЕРЕМЕННЫЕ

Числа и операторы

Переменные

Строки

Булевы значения

undefined и null

Что мы узнали

3. МАССИВЫ

Зачем нужны массивы?

Создание массива

Доступ к элементам массива

Создание и изменение элементов

Разные типы данных в одном массиве

Работаем с массивами

Что полезного можно сделать с массивами

Что мы узнали

4. ОБЪЕКТЫ

Создание объектов

Доступ к значениям внутри объектов

Добавление элементов объекта

Массивы объектов

Исследование объектов в консоли

Что полезного можно сделать с объектами

Что мы узнали

5. ОСНОВЫ HTML

Текстовые редакторы

Наш первый HTML-документ

Теги и элементы

Полноценный HTML-документ

Иерархия HTML

Добавим в HTML ссылки

Что мы узнали

6. УСЛОВИЯ И ЦИКЛЫ

Внедрение JavaScript-кода в HTML

Условные конструкции

Циклы

Что мы узнали

7. ПИШЕМ ИГРУ «ВИСЕЛИЦА»

Взаимодействие с игроком

Проектирование игры

Программируем игру

Код игры

Что мы узнали

8. ФУНКЦИИ

Базовое устройство функции

Создаем простую функцию

Вызов функции

Передача аргументов в функцию

Возврат значения из функции

Вызов функции в качестве значения

Упрощаем код с помощью функций

Ранний выход из функции по return

Многократное использование return вместо конструкции if... else

Что мы узнали

ЧАСТЬ II. Продвинутый JavaScript

9. DOM И JQUERY

Поиск элементов DOM

Работа с деревом DOM через jQuery

Создание новых элементов через jQuery

Анимация элементов средствами jQuery

Цепной вызов и анимация на jQuery

Что мы узнали

10. ИНТЕРАКТИВНОЕ ПРОГРАММИРОВАНИЕ

Отложенное выполнение кода и setTimeout

Отмена действия таймера

Многократный запуск кода и setInterval

Анимация элементов с помощью setInterval

Реакция на действия пользователя

Что мы узнали

11. ПИШЕМ ИГРУ «НАЙДИ КЛАД!»

Проектирование игры

Создаем веб-страницу с HTML-кодом

Выбор случайного места для клада

Обработчик кликов

Код игры

Что мы узнали

12. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

Простой объект

Добавление к объектам новых методов

Создание объектов с помощью конструкторов

Рисуем машины

Настройка объектов через прототипы

Что мы узнали

ЧАСТЬ III. Графика

13. ЭЛЕМЕНТ CANVAS

Создаем «холст»

Рисование на «холсте»

Выбор цвета

Рисование контуров прямоугольников

Рисование линий или путей

Заливка путей цветом

Рисование дуг и окружностей

Рисование нескольких окружностей с помощью функции

Что мы узнали

14. АНИМАЦИИ С ПОМОЩЬЮ CANVAS

Движение по странице

Изменение размера квадрата

Случайная пчела

Отскакивающий мяч

Что мы узнали

15. УПРАВЛЕНИЕ АНИМАЦИЯМИ С КЛАВИАТУРЫ

События клавиатуры

Управляем мячом с клавиатуры

Код программы

Запуск программы

Что мы узнали

16. ПИШЕМ ИГРУ «ЗМЕЙКА»: ЧАСТЬ 1

Структура игры

Начинаем писать игру

Рисуем рамку

Отображение счета

Конец игры

Что мы узнали

17. ПИШЕМ ИГРУ «ЗМЕЙКА»: ЧАСТЬ 2

Создаем конструктор Block

Создаем змейку

Перемещаем змейку

Управляем змейкой с клавиатуры

Создаем яблоко

Код игры

Что мы узнали

ПОСЛЕСЛОВИЕ: КУДА ДВИГАТЬСЯ ДАЛЬШЕ

Больше о JavaScript

Веб-программирование

Графическое программирование

3D-программирование

Программирование роботов

Программирование звука

Программирование игр

Обмен кодом с помощью JSFiddle

ГЛОССАРИЙ

ОБ АВТОРЕ

БЛАГОДАРНОСТИ