Языки программирования

Учебник JavaScript для начинающих

65 уроков · 12 разделов · бесплатно, без регистрации

Язык веба, который оживляет страницы прямо в браузере. Разберём переменные, функции, объекты, массивы и работу с DOM.

Курс «JavaScript» состоит из 12 разделов и 65 уроков: Основы JavaScript, Условия и циклы, Функции, Объекты, Типы данных, Исключения и модули, Возможности ES6, Методы массивов, Асинхронный JavaScript, DOM и события, Асинхронность глубоко и Продвинутый JavaScript. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Основы JavaScript

    1. Как запустить JS-код
    2. Переменные и константы в JS
    3. Метод cosnole.log() в JS

      console.log() в JavaScript: вывод строк, чисел, переменных и объектов в консоль, шаблонные строки, отладка кода — с примерами и таблицей методов console.

    4. Типы данных в JS
    5. Операторы в JS
    6. Комментарии в JS
    7. Преобразование типов в JS
  2. 2 Условия и циклы

    1. Операторы сравнения и логические операторы в JS

      В этом разделе вы научитесь использовать логические конструкции if..else, switch, а также циклы while и for.

    2. Условный оператор if...else в JS
    3. Цикл for в JS
    4. Циклы while и do...while в JS
    5. Оператор break в JS

      Оператор break в JavaScript: выход из цикла for и while, вложенные циклы, break в switch — пошаговые примеры с объяснением.

    6. Оператор continue в JS
    7. Оператор switch в JS
  3. 3 Функции

    1. Функции в JS
    2. Область видимости переменной в JS
    3. Поднятие (hoisting) в JS
    4. Рекурсия в JS
  4. 4 Объекты

    1. Объекты в JS
    2. Методы и this в JS
    3. Конструктор объектов в JS
    4. Геттеры и сеттеры в JS
    5. Прототипы объектов в JS
  5. 5 Типы данных

    1. Массив в JS
    2. Многомерные массивы в JS
    3. Тип данных String в JS
    4. Цикл for...in в JS

      Цикл for...in в JavaScript: перебор ключей объекта, работа со строками и массивами, сравнение с for...of — с примерами и таблицей.

    5. Тип данных Number в JS
    6. Тип данных Symbol в JS
  6. 6 Исключения и модули

    1. Оператор try...catch...finally в JS
    2. Оператор throw в JS
    3. Модули в JS
  7. 7 Возможности ES6

    1. Возможности JS ES6
    2. Стрелочные функции в JS
    3. Необязательные параметры в JS

      Параметры по умолчанию в JavaScript (ES6): синтаксис, выражения и функции как дефолт, поведение undefined vs null — с примерами.

    4. Шаблонные строки в JS
    5. Оператор spread в JS
    6. Объект Map в JS
    7. Объект Set в JS
    8. Деструктурирующее присваивание в JS
    9. Классы в JS
    10. Наследование классов в JS
    11. Цикл for...of в JS
    12. Прокси в JS
  8. 8 Методы массивов

    1. map, filter, reduce в JavaScript

      Методы map, filter и reduce в JavaScript: трансформация, фильтрация и свёртка массивов с примерами и цепочками методов.

    2. Поиск в массиве: find, findIndex, includes, indexOf

      Поиск в массиве JavaScript: find, findIndex, includes, indexOf — как найти элемент по значению или условию, сравнение методов с примерами.

    3. Сортировка и изменение массивов: sort, push/pop, slice/splice

      Изменение и сортировка массивов JavaScript: sort, push, pop, shift, unshift, slice, splice — мутирующие и чистые методы с примерами.

  9. 9 Асинхронный JavaScript

    1. setTimeout, setInterval и колбэки

      setTimeout и setInterval в JavaScript: отложенный и периодический вызов функций, колбэки и callback hell — основы асинхронности с примерами.

    2. Промисы: Promise, then, catch

      Promise в JavaScript: создание промиса, цепочки then/catch/finally, Promise.all — работа с асинхронным кодом без колбэков с примерами.

    3. async/await в JavaScript

      async/await в JavaScript: синхронный стиль для асинхронного кода, обработка ошибок через try/catch, параллельное выполнение с Promise.all.

    4. fetch и работа с JSON

      fetch API в JavaScript: GET и POST запросы, разбор JSON-ответа, проверка response.ok, JSON.parse и JSON.stringify с примерами.

  10. 10 DOM и события

    1. Что такое DOM и выбор элементов

      DOM в JavaScript: Document Object Model, выбор элементов через querySelector, querySelectorAll, getElementById — базовая работа с деревом страницы.

    2. Изменение содержимого и стилей элементов

      Изменение DOM в JavaScript: textContent, innerHTML, classList, style, setAttribute — как менять содержимое, классы и стили элементов.

    3. Обработчики событий: addEventListener

      addEventListener в JavaScript: клики, ввод, отправка формы, объект Event, preventDefault, делегирование событий с примерами.

  11. 11 Асинхронность глубоко

    1. Событийный цикл детально

      Call stack, очереди microtask и macrotask, порядок выполнения. Запускаемые примеры «что выведет» с промисами и setTimeout.

    2. Promise глубоко

      Создание промисов, три состояния, синхронный executor, цепочки .then и обработка ошибок через .catch. Запускаемые примеры.

    3. Комбинаторы промисов

      Promise.all, race, allSettled и any: чем отличаются, когда завершаются и какой выбрать. Запускаемые примеры каждого.

    4. async/await и обработка ошибок

      async/await как сахар над промисами, try/catch/finally, ошибки в цикле и параллельный запуск через Promise.all. Запускаемые примеры.

    5. Асинхронные итераторы и генераторы

      for await...of, async function* и Symbol.asyncIterator для обработки потоков данных и постраничной загрузки. Запускаемые примеры.

  12. 12 Продвинутый JavaScript

    1. Замыкания: паттерны на практике

      Счётчики, модульный паттерн, мемоизация и приватность через замыкания и WeakMap. Запускаемые примеры и ловушка цикла с var.

    2. Прототипы и наследование глубоко

      Цепочка прототипов, Object.create, наследование на конструкторах и классы как сахар над прототипами. Запускаемые примеры.

    3. Итераторы и генераторы

      Протокол итерации, Symbol.iterator, function*, ленивые бесконечные последовательности, двусторонний обмен и yield*. Запускаемые примеры.

    4. Proxy и Reflect

      Перехват операций над объектом через Proxy (get/set), методы Reflect и их совместное использование для логирования и валидации. Запускаемые примеры.

    5. Коллекции: Map, Set, WeakMap, WeakSet

      Map и Set против объектов и массивов, слабые ссылки WeakMap/WeakSet и шпаргалка по выбору структуры данных. Запускаемые примеры.

    6. Функциональные приёмы

      Чистые функции и иммутабельность, каррирование, композиция функций (compose/pipe) и декларативные цепочки filter/map/reduce. Запускаемые примеры.