GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Учебник
  • Курсы
  • Форум
  • Тесты знаний
  • Node.js
  • Webpack
  • Gulp
  • React.js
  • Angular
  • Git: курс
  • Git: разное

This view

  • Original page
  • New address

GeezerVison is showing learn.javascript.ru — Современный учебник JavaScript

Язык JavaScript

Здесь вы можете изучить JavaScript, начиная с нуля и заканчивая продвинутыми концепциями вроде ООП.

Мы сосредоточимся на самом языке, изредка добавляя заметки о средах его исполнения.

Введение
  • Введение в JavaScript
  • Справочники и спецификации
  • Редакторы кода
  • Консоль разработчика
Основы JavaScript
  • Привет, мир!
  • Структура кода
  • Строгий режим — "use strict"
  • Переменные
  • Типы данных
  • Взаимодействие: alert, prompt, confirm
  • Преобразование типов
  • Базовые операторы, математика
  • Операторы сравнения
  • Условное ветвление: if, '?'
  • Логические операторы
  • Операторы нулевого слияния и присваивания: '??', '??='
  • Циклы while и for
  • Конструкция "switch"
  • Функции
  • Function Expression
  • Стрелочные функции, основы
  • Особенности JavaScript
  • Далее…
Качество кода
  • Отладка в браузере
  • Советы по стилю кода
  • Комментарии
  • Ниндзя-код
  • Автоматическое тестирование c использованием фреймворка Mocha
  • Полифилы
Объекты: основы
  • Объекты
  • Копирование объектов и ссылки
  • Сборка мусора
  • Методы объекта, "this"
  • Конструктор, оператор "new"
  • Опциональная цепочка '?.'
  • Тип данных Symbol
  • Преобразование объектов в примитивы
Типы данных
  • Методы примитивов
  • Числа
  • Строки
  • Массивы
  • Методы массивов
  • Перебираемые объекты
  • Map и Set
  • WeakMap и WeakSet
  • Object.keys, values, entries
  • Деструктурирующее присваивание
  • Дата и время
  • Формат JSON, метод toJSON
  • Далее…
Продвинутая работа с функциями
  • Рекурсия и стек
  • Остаточные параметры и оператор расширения
  • Область видимости переменных, замыкание
  • Устаревшее ключевое слово "var"
  • Глобальный объект
  • Объект функции, NFE
  • Синтаксис "new Function"
  • Планирование: setTimeout и setInterval
  • Декораторы и переадресация вызова, call/apply
  • Привязка контекста к функции
  • Повторяем стрелочные функции
  • Далее…
Свойства объекта, их конфигурация
  • Флаги и дескрипторы свойств
  • Свойства - геттеры и сеттеры
Прототипы, наследование
  • Прототипное наследование
  • F.prototype
  • Встроенные прототипы
  • Методы прототипов, объекты без свойства __proto__
Классы
  • Класс: базовый синтаксис
  • Наследование классов
  • Статические свойства и методы
  • Приватные и защищённые методы и свойства
  • Расширение встроенных классов
  • Проверка класса: "instanceof"
  • Примеси
Обработка ошибок
  • Обработка ошибок, "try..catch"
  • Пользовательские ошибки, расширение Error
Промисы, async/await
  • Введение: колбэки
  • Промисы
  • Цепочка промисов
  • Промисы: обработка ошибок
  • Promise API
  • Промисификация
  • Микрозадачи
  • Async/await
Генераторы, продвинутая итерация
  • Генераторы
  • Асинхронные итераторы и генераторы
Модули
  • Модули, введение
  • Экспорт и импорт
  • Динамические импорты
Разное
  • Proxy и Reflect
  • Eval: выполнение строки кода
  • Каррирование
  • Ссылочный тип
  • Побитовые операторы
  • BigInt
  • Юникод, внутреннее устройство строк
  • Intl: интернационализация в JavaScript
  • WeakRef и FinalizationRegistry
  • Далее…

Браузер: документ, события, интерфейсы

Изучаем работу со страницей – как получать элементы, манипулировать их размерами, динамически создавать интерфейсы и взаимодействовать с посетителем.

Документ
  • Браузерное окружение, спецификации
  • DOM-дерево
  • Навигация по DOM-элементам
  • Поиск: getElement*, querySelector*
  • Свойства узлов: тип, тег и содержимое
  • Атрибуты и свойства
  • Изменение документа
  • Стили и классы
  • Размеры и прокрутка элементов
  • Размеры и прокрутка окна
  • Координаты
  • Далее…
Введение в события
  • Введение в браузерные события
  • Всплытие и погружение
  • Делегирование событий
  • Действия браузера по умолчанию
  • Генерация пользовательских событий
Интерфейсные события
  • Основы событий мыши
  • Движение мыши: mouseover/out, mouseenter/leave
  • Drag'n'Drop с событиями мыши
  • Клавиатура: keydown и keyup
  • События указателя
  • Прокрутка
Формы, элементы управления
  • Свойства и методы формы
  • Фокусировка: focus/blur
  • События: change, input, cut, copy, paste
  • Отправка формы: событие и метод submit
Загрузка документа и ресурсов
  • Страница: DOMContentLoaded, load, beforeunload, unload
  • Скрипты: async, defer
  • Загрузка ресурсов: onload и onerror
Разное
  • MutationObserver: наблюдатель за изменениями
  • Selection и Range
  • Событийный цикл: микрозадачи и макрозадачи

Тематические разделы

Важные темы, читать которые можно в любом порядке.
Фреймы и окна
  • Открытие окон и методы window
  • Общение между окнами
  • Атака типа clickjacking
Бинарные данные и файлы
  • ArrayBuffer, бинарные массивы
  • TextDecoder и TextEncoder
  • Blob
  • File и FileReader
Сетевые запросы
  • Fetch
  • FormData
  • Fetch: ход загрузки
  • Fetch: прерывание запроса
  • Fetch: запросы на другие сайты
  • Fetch API
  • Объекты URL
  • XMLHttpRequest
  • Возобновляемая загрузка файлов
  • Длинные опросы
  • WebSocket
  • Server Sent Events
  • Далее…
Хранение данных в браузере
  • Куки, document.cookie
  • LocalStorage, sessionStorage
  • IndexedDB
Анимация
  • Кривые Безье
  • CSS-анимации
  • JavaScript-анимации
Веб-компоненты
  • С орбитальной высоты
  • Пользовательские элементы (Custom Elements)
  • Shadow DOM
  • Элемент "template"
  • Слоты теневого DOM, композиция
  • Настройка стилей теневого DOM
  • Теневой DOM и события
Регулярные выражения
  • Введение: шаблоны и флаги
  • Символьные классы
  • Юникод: флаг "u" и класс \p{...}
  • Якоря: начало строки ^ и конец $
  • Многострочный режим якорей ^ $, флаг "m"
  • Граница слова: \b
  • Экранирование, специальные символы
  • Наборы и диапазоны [...]
  • Квантификаторы +, *, ? и {n}
  • Жадные и ленивые квантификаторы
  • Скобочные группы
  • Обратные ссылки в шаблоне: \N и \k<имя>
  • Альтернация (или) |
  • Опережающие и ретроспективные проверки
  • Катастрофический возврат
  • Поиск на заданной позиции, флаг "y"
  • Методы RegExp и String
  • Далее…
CSS для JavaScript-разработчика
  • О чём пойдёт речь
  • Единицы измерения: px, em, rem и другие
  • Все значения свойства display
  • Свойство float
  • Свойство position
  • Центрирование горизонтальное и вертикальное
  • Свойства font-size и line-height
  • Свойство white-space
  • Свойство outline
  • Свойство box-sizing
  • Свойство margin
  • Лишнее место под IMG
  • Свойство overflow
  • Особенности свойства height в %
  • Знаете ли вы селекторы?
  • CSS-спрайты
  • Правила форматирования CSS
  • Далее…

Онлайн-курсы

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

С теорией, практикой, ответами на вопросы, проектом и обратной связью по вашему коду ("code review").

Выберите курс ниже, чтобы узнать детали.

Современная веб-разработка

курс для новичков

JavaScript / Интерфейсы

курс для программистов

JavaScript / TypeScript / Интерфейсы

New
интенсив

TypeScript

Фреймворки, смежные технологии

курс

React

курс

Next.js

New
курс

Node.js

New
интенсив

Архитектура и паттерны

New
course

React Native

New

Обновляем программу

курс

Vue

курс

Angular

Следите за обновлениями javascript.ru

Мы не рассылаем рекламу, все только по делу. Вы сами выбираете, что получать:
Общие обновления
Подписываясь на рассылку, вы соглашаетесь с пользовательским соглашением.
Поделиться
Карта учебника

Комментарии

перед тем как писать…
  • Если вам кажется, что в статье что-то не так - вместо комментария напишите на GitHub.
  • Для одной строки кода используйте тег <code>, для нескольких строк кода — тег <pre>, если больше 10 строк — ссылку на песочницу (plnkr, JSBin, codepen…)
  • Если что-то непонятно в статье — пишите, что именно и с какого места.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.