Перед вами современный учебник по JavaScript, начиная с основ, включающий в себя DOM, замыкания, ООП, тонкости и много практических задач. От основ к продвинутой, грамотной разработке. Хорошего чтения!
Краткое содержание
Часть 1. Изучаем JavaScript.- Общая информация
- Основы JavaScript
- Пишем на JavaScript
- Структуры данных
- Функции и замыкания
- Аргументы функций
- Объекты и методы
- Получение и проверка типа
- Разные темы
- CSS для JavaScript-разработчика
- Документ и объекты страницы
- События, взаимодействие с посетителем
- Анимация
- jQuery: курс немолодого бойца [в работе]
- Создание графических компонентов
- Продвинутая работа с объектами
- Оптимизация
- Сжатие JavaScript
- Разное
- Окна и Фреймы
- Регулярные выражения [в работе]
- Сундучок с инструментами
- Ура, я знаю JavaScript!
- AJAX
Оглавление
Часть 1. Изучаем JavaScript.
Введение и возможности языка JavaScript. Мы будем использовать браузер для запуска примеров, но сами знания не привязаны к конкретной платформе.
- Основы JavaScript
- Структура кода
- Переменные
- Имена переменных
- Введение в типы данных
- Основные операторы
- Операторы сравнения и логические значения
- Побитовые операторы
- Взаимодействие с пользователем: alert, prompt, confirm
- ✔ Простая страница 4
- Условные операторы: if, '?'
- Логические операторы
- Циклы while, for
- Директивы break и continue
- Конструкция switch
- Функции
- Рекурсия, стек
- Методы и свойства
- Всё вместе: особенности JavaScript
- Структуры данных
- Строки
- Числа
- Объекты как ассоциативные массивы
- ✔ Первый объект 3
- ✔ multiplyNumeric 5
- Массивы c числовыми индексами
- ✔ Получить последний элемент массива 5
- ✔ Добавить новый элемент в массив 5
- ✔ Создание массива 5
- ✔ Получить случайное значение из массива 3
- ✔ Создайте калькулятор для введённых значений 4
- ✔ Чему равен элемент массива? 3
- ✔ Поиск в массиве 3
- ✔ Фильтр диапазона 3
- ✔ Решето Эратосфена 3
- ✔ Подмассив наибольшей суммы 2
- Массивы: методы
- ✔ Оставить уникальные элементы массива 3
- ✔ Добавить класс в строку 5
- ✔ Перевести текст вида border-left-width в borderLeftWidth 3
- ✔ Функция removeClass 5
- ✔ Фильтрация массива "на месте" 4
- ✔ Сортировать в обратном порядке 5
- ✔ Скопировать и отсортировать массив 5
- ✔ Случайный порядок в массиве 3
- ✔ Сортировка объектов 5
- ✔ Вывести односвязный список 5
- ✔ Отфильтровать анаграммы 4
- Дата и Время
- Преобразование типов
- Функции и замыкания
- Функция - это значение
- Function Declaration и Function Expression
- Именованные функциональные выражения
- Глобальный объект
- Замыкания, функции изнутри
- ✔ вопрос по var 5
- ✔ var window 5
- ✔ Вызов "на месте" 4
- Хранение данных в замыкании, модули
- Статические переменные
- Конструкция "with"
- ✔ With + функция 5
- ✔ With + переменные 5
- Объекты и методы
- Получение и проверка типа
- Разные темы
- Таймеры
- Привязка контекста
- Статические и фабричные методы объектов
- ✔ Счетчик объектов 5
- Массив: Перебирающие методы
- Запуск кода из строки: eval
- ✔ Eval-калькулятор 4
- Перехват ошибок, "try..catch"
- Формат JSON
- Тест: повторение тонких мест
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
- ✔ JS-вопросник
Часть 2. Документ, события, интерфейсы.
Учимся использовать JavaScript для любых изменений страницы, делать интерфейс.- CSS для JavaScript-разработчика
- О чём пойдёт речь
- Единицы измерения "px", "em", "%" и другие
- Свойства "font-size" и "line-height"
- Свойство white-space
- Свойство "outline"
- Свойство "box-sizing"
- Свойство "margin"
- Свойство "display"
- Лишнее место под IMG
- Свойство "float"
- Свойство "overflow"
- Свойство "position"
- ✔ Модальное окно 5
- Особенности свойства "height" в %
- Знаете ли вы селекторы?
- CSS без IE6(7)
- CSS-спрайты
- Центрирование горизонтальное и вертикальное
- Правила форматирования CSS
- Документ и объекты страницы
- Окружение: DOM, BOM и JS
- BOM-объекты: navigator, screen, location, frames
- DOM-элементы и их свойства
- Дерево DOM
- Работа с DOM из консоли
- Навигация в DOM, свойства-ссылки
- Свойства узлов: тип, тег, содержимое и другие
- Атрибуты и "свои" свойства
- Интерактивное путешествие по DOM
- Поиск: getElement* и querySelector*
- Добавление и удаление узлов
- Мультивставка: insertAdjacentHTML и DocumentFragment
- Метод document.write
- Внешний вид: стили, прокрутка, координаты
- Проверка вложенности и соседства
- DOM-шпаргалка
- События, взаимодействие с посетителем
- События: основы
- События мыши
- Основы Drag'n'Drop
- Drag'n'Drop объектов
- События клавиатуры
- Формы: свойства элементов
- Формы: события "change", "input", "propertychange"
- Формы: метод и событие "submit"
- События и методы "focus/blur"
- Событие "onscroll"
- События "onload", "onbeforeunload" и "onerror"
- Событие загрузки документа "onDOMContentLoaded"
- Проверка поддержки браузером
- Создание графических компонентов
Часть 3. Разное.
- Продвинутая работа с объектами
- Прототип: наследование и методы
- "Классы" в JavaScript
- Детали: свойство "constructor"
- Проверка прототипа: "instanceof"
- Наследование для классов в JavaScript
- Область применения наследования
- ООП: фреймворк Class.extend
- ООП: функциональная реализация классов
- ООП: почему наследование "на прототипах" - лучше
- Расширение встроенных прототипов
- Дескриптор свойства, геттеры и сеттеры
- Регулярные выражения [в работе]
- Введение
- Символьные классы
- Специальные символы
- Флаги
- Наборы и диапазоны символов
- Цифровые квантификаторы
- Quantifiers +, * and ?
- Greedy and Lazy
- Ahchors and multiline mode
- ✔ ^$
- Word boundary
- Infinite backtracking problem
- Groups
- Alternation
- Regular expressions methods
- Practice
- Особенности регулярных выражений в Javascript
- AJAX
- Введение в AJAX и COMET
- Node.JS для решения задач
- XMLHttpRequest
- Запрос данных через SCRIPT, формат JSONP
- AJAX-запросы через IFRAME
- IE: Скрытие IFRAME в ActiveX "htmlfile"
- Кросс-доменные запросы через IFRAME
- COMET через IFRAME
- EventSource - события с сервера
- WebSocket
- Таблица транспортов и их возможностей