Подробнее
Что нужно для старта
- Для прохождения программы не требуется опыт программирования.
- Достаточно:
- уметь открыть браузер в компьютере
- уметь устанавливать программы по инструкции
- иметь желание регулярно заниматься и выполнять практические задания
- Все необходимые знания по JavaScript рассматриваются с самых основ.
Что вы получите
- Научитесь думать как инженер, сформируете мышление, с которым любой фреймворк (React, Vue, Angular) в будущем дастся вам в разы легче.
- Проходить технические собеседования на позиции Junior/Middle, уверенно отвечая на каверзные вопросы по ядру языка.
- Читать спецификацию ECMAScript и документацию MDN, свободно ориентируясь в терминологии языка.
- Дебажить чужой и свой код, находить скрытые баги или утечки памяти.
- Разрабатывать архитектуру, грамотно выбирая между функциональным подходом, классами и прототипным наследованием.
- Анализировать поведение кода, предсказывать результат работы замыканий, hoisting, приведения типов и области видимости без необходимости запускать консоль.
- Применять продвинутые структуры данных (Map, Set, WeakMap) и итераторы для оптимизации производительности приложений.
- Управлять асинхронностью - писать предсказуемый код с промисами и async/await, понимать Event Loop и избегать блокировок главного потока.
- Интегрировать внешние API: настраивать HTTP-запросы, грамотно парсить JSON и элегантно обрабатывать сетевые ошибки.
- Использовать современный инструментарий (NPM, ES-модули, деструктуризацию) как в браузере, так и в среде Node.js.
Для кого этот курс
- Программа подойдет:
- Тем, кто никогда не программировал и хочет начать изучение JavaScript с нуля.
- Студентам технических специальностей.
- Тем, кто хочет стать frontend-разработчиком.
- Тем, кто изучал JavaScript самостоятельно, но чувствует пробелы в знаниях.
- Начинающим разработчикам, которые хотят глубже разобраться в языке.
- Тем, кто планирует изучать React, Vue, Angular или другие современные технологии.
- Всем, кто хочет понимать JavaScript не на уровне отдельных примеров, а на уровне устройства языка.
- Особенно полезна программа будет тем, кто устал от коротких курсов, после которых остается ощущение, что многие важные темы остались за кадром.
Программа курса
- Что такое программа курсов
- Про курс
- Что нужно сделать
- Про JavaScript
- Выбор браузера и редактора
- Подготовка к работе в VS Code
- Установка NodeJS
- Первая программа
- Открываем сайт с JavaScript
- Атрибуты async и defer
- Инструкции в коде
- Создание переменных
- Константы (const) и устаревшее var
- Правильные названия переменных
- Строгий режим - use strict
- Стиль кода
- Отладка кода
- Обзор типов данных
- Оператор typeof и его нюансы
- Number - числовой тип данных
- Infinity, NaN и превращение числа в строку
- Превращение строки в число
- Неточность вычислений
- Округление чисел
- Минимальное, максимальное и случайное значения
- String - строки
- Углубление в строки
- BigInt - большие целые числа
- Boolean - булев тип данных
- Symbol - символ
- null и undefined
- Object - объекты
- Autoboxing
- Операторы и операнды
- Математические операторы
- Конкатенация
- Присваивание
- Инкремент, декремент и запятая
- Сравнение
- Сравнение строк
- И, Или, Не (AND, OR, NOT)
- Нюансы ИЛИ
- Нюансы И
- ?? - оператор нулевого слияния
- Приоритет и ассоциативность
- Побитовые операторы
- Логика: if-else
- Тернарный оператор
- Неправильное использование тернарного оператора
- Конструкция switch
- Использование switch (true)
- Задача 1 - Тебе нравится JS?
- Задача 2 - Здороваемся по имени
- Задача 3 - Здороваемся по возрасту
- Задача 4 - Поиск по названию продукта
- Задача 5 - Отгадай число
- Объявление функции
- Выражение функции
- Область видимости
- Блочная область видимости
- Функциональная область видимости
- Создание функции и scope
- Создание переменных с var
- Параметры функции
- Возвращение значений из функции
- "Правильные" функции
- Функция - это объект
- callback-функции
- Стрелочные функции
- Стек вызовов - callstack
- Рекурсия
- Углубление в рекурсию
- Именованное функциональное выражение - NFE
- Документирование с JSDoc
- Задача 1 - Полное имя
- Задача 2 - Функция-компаратор
- Задача 3 - Склонение слова по числу
- Введение в массивы
- Получение значений из массива
- Простые методы массива
- Неверное использование массива
- Многомерные массивы
- Создание через new Array() и изменение длины
- Сравнение массивов
- ... rest - Остаточные параметры
- ... spread синтаксис
- while
- do-while
- for
- break и continue
- Вложенные циклы
- Итерация по массиву
- for..in и for..of
- Итерация по многомерным массивам
- Задача 1 - Разворот массива
- Задача 2 - Заполни массив нулями до длины
- Задача 3 - Составляем массив до нуля
- Задача 4 - Рисуем паттерн
- Задача 5 - Получение ближайших максимальных чисел
- Задача 6 - Сортировка в случайном порядке
- Задача 7 - Проверка на правильность скобок
- Введение в объекты
- Вычисляемые названия и значения свойств
- Свойства прототипа
- Проверка существования свойства
- Что использовать, массив или объект?
- Методы
- Откуда берется контекст в методах
- Контекст в стрелочных функциях
- Названия для приватных свойств
- Вложенные объекты
- Объект в цикле for..in
- Object.keys, Object.values, Object.entries
- Цепочка методов
- Оператор опциональной последовательности
- Задача 1 - Превращаем массив в обычный объект
- Задача 2 - Ищем самый часто повторяющийся символ
- Задача 3 - Рефереры, подсчет вознаграждения
- Приветствие
- Ошибки
- Дата и время
- JSON
- Деструктуризация
- setTimeout() и setInterval()
- Структуры Map и Set
- Каррирование
- Вспоминаем массивы
- Создание и проверка массивов
- Изменение элементов
- Поиск и проверка элементов
- Преобразование массива
- Сортировка, объединение и преобразование
- Агрегация
- Итерация
- Практика
- Свойства в объекте
- Копирование и клонирование объектов
- Тип Symbol
- Функции-генераторы и итераторы
- Сборщик мусора
- Контекст
- Методы call и apply
- Декораторы
- Метод bind
- Дескрипторы свойств
- Геттеры и сеттеры
- Про Object
- Методы для работы с объектами
- Методы для управления свойствами объекта
- Методы для работы с прототипами
- Методы для проверки и управления состоянием объекта
- Методы для работы с группировкой и сравнением
- Введение в ООП в JavaScript
- Про объекты и прототипы
- Проблема литеральных объектов
- Функции-конструкторы
- Использование прототипа
- Разница [[Prototype]], __proto__ и prototype
- Статические свойства
- Наследование свойств в функциях-конструкторах
- Наследование статических свойств
- Наследование методов в прототипах
- Запись в свойства объекта
- Цикл for..in и функции-конструкторы
- Геттеры и сеттеры для функций-конструкторов
- Переопределение методов
- Полифилы, расширение стандартных прототипов и автобоксинг
- Проверка вызова с new
- Нюансы при работе с функциями-конструкторами
- instanceof
- Классы
- Геттеры и сеттеры в классах
- Вычисляемые названия свойств и методов
- Статические свойства и методы
- Порядок свойств и методов в классе
- Наследование классов
- Наследование и порядок создания объекта
- Приватные методы и свойства
- Расширение нативных функций-конструкторов
- Абстрактные классы
- Миксины
- Пользовательские ошибки
- Про модули
- export и import
- export default
- Реэкспорт
- Особенности и нюансы модулей
- Асинхронность в JavaScript
- callback-функции
- Промисы
- Промисы с then, catch и finally
- Промисы и цепочка методов
- Thenable интерфейс
- Создание отработанных промисов
- Обработка ошибок
- Перехват необработанных отклоненных промисов
- Статические методы Promise
- Промисификация
- async/await
- Нюансы async/await
- Асинхронные итераторы, генераторы и for..await
- Array.fromAsync()
- Динамические импорты
- Цикл событий - Event Loop
- Практика
- Начало работы с npm
- Версионирование
- Публикация библиотек
- Что такое HTTP и как он работает
- Структура HTTP-запроса
- Методы HTTP-запросов
- Что такое HTTPS
- Про API
- URL
- XMLHttpRequest
- Fetch
- Практика с fetch
- CORS
- Аутентификация и авторизация
- Аутентификация - практика
- ApiClient - практика
- Что дальше?
01Как начать учиться
- Что такое программа курсов
02JS - 1 [1.1] - Введение
- Про курс
- Что нужно сделать
- Про JavaScript
- Выбор браузера и редактора
- Подготовка к работе в VS Code
- Установка NodeJS
- Первая программа
- Открываем сайт с JavaScript
- Атрибуты async и defer
- Инструкции в коде
03JS - 1 [1.2] - Переменные
- Создание переменных
- Константы (const) и устаревшее var
- Правильные названия переменных
- Строгий режим - use strict
- Стиль кода
- Отладка кода
04JS - 1 [1.3] - Типы данных
- Обзор типов данных
- Оператор typeof и его нюансы
- Number - числовой тип данных
- Infinity, NaN и превращение числа в строку
- Превращение строки в число
- Неточность вычислений
- Округление чисел
- Минимальное, максимальное и случайное значения
- String - строки
- Углубление в строки
- BigInt - большие целые числа
- Boolean - булев тип данных
- Symbol - символ
- null и undefined
- Object - объекты
- Autoboxing
05JS - 1 [1.4] - Операторы
- Операторы и операнды
- Математические операторы
- Конкатенация
- Присваивание
- Инкремент, декремент и запятая
- Сравнение
- Сравнение строк
- И, Или, Не (AND, OR, NOT)
- Нюансы ИЛИ
- Нюансы И
- ?? - оператор нулевого слияния
- Приоритет и ассоциативность
- Побитовые операторы
06JS - 1 [1.5] - Ветвления
- Логика: if-else
- Тернарный оператор
- Неправильное использование тернарного оператора
- Конструкция switch
- Использование switch (true)
- Задача 1 - Тебе нравится JS?
- Задача 2 - Здороваемся по имени
- Задача 3 - Здороваемся по возрасту
- Задача 4 - Поиск по названию продукта
- Задача 5 - Отгадай число
07JS - 1 [1.6] - Функции
- Объявление функции
- Выражение функции
- Область видимости
- Блочная область видимости
- Функциональная область видимости
- Создание функции и scope
- Создание переменных с var
- Параметры функции
- Возвращение значений из функции
- "Правильные" функции
- Функция - это объект
- callback-функции
- Стрелочные функции
- Стек вызовов - callstack
- Рекурсия
- Углубление в рекурсию
- Именованное функциональное выражение - NFE
- Документирование с JSDoc
- Задача 1 - Полное имя
- Задача 2 - Функция-компаратор
- Задача 3 - Склонение слова по числу
08JS - 1 [1.7] - Массивы
- Введение в массивы
- Получение значений из массива
- Простые методы массива
- Неверное использование массива
- Многомерные массивы
- Создание через new Array() и изменение длины
- Сравнение массивов
- ... rest - Остаточные параметры
- ... spread синтаксис
09JS - 1 [1.8] - Циклы
- while
- do-while
- for
- break и continue
- Вложенные циклы
- Итерация по массиву
- for..in и for..of
- Итерация по многомерным массивам
- Задача 1 - Разворот массива
- Задача 2 - Заполни массив нулями до длины
- Задача 3 - Составляем массив до нуля
- Задача 4 - Рисуем паттерн
- Задача 5 - Получение ближайших максимальных чисел
- Задача 6 - Сортировка в случайном порядке
- Задача 7 - Проверка на правильность скобок
10JS - 1 [1.9] - Объекты
- Введение в объекты
- Вычисляемые названия и значения свойств
- Свойства прототипа
- Проверка существования свойства
- Что использовать, массив или объект?
- Методы
- Откуда берется контекст в методах
- Контекст в стрелочных функциях
- Названия для приватных свойств
- Вложенные объекты
- Объект в цикле for..in
- Object.keys, Object.values, Object.entries
- Цепочка методов
- Оператор опциональной последовательности
- Задача 1 - Превращаем массив в обычный объект
- Задача 2 - Ищем самый часто повторяющийся символ
- Задача 3 - Рефереры, подсчет вознаграждения
11JS - 2 [2.1] - Начало
- Приветствие
- Ошибки
- Дата и время
- JSON
- Деструктуризация
- setTimeout() и setInterval()
- Структуры Map и Set
- Каррирование
12JS - 2 [2.2] - Массивы
- Вспоминаем массивы
- Создание и проверка массивов
- Изменение элементов
- Поиск и проверка элементов
- Преобразование массива
- Сортировка, объединение и преобразование
- Агрегация
- Итерация
- Практика
13JS - 2 [2.3] - Объекты
- Свойства в объекте
- Копирование и клонирование объектов
- Тип Symbol
- Функции-генераторы и итераторы
- Сборщик мусора
- Контекст
- Методы call и apply
- Декораторы
- Метод bind
- Дескрипторы свойств
- Геттеры и сеттеры
14JS - 2 [2.4] - Функция-конструктор Object
- Про Object
- Методы для работы с объектами
- Методы для управления свойствами объекта
- Методы для работы с прототипами
- Методы для проверки и управления состоянием объекта
- Методы для работы с группировкой и сравнением
15JS - 2 [2.5] - ООП и функции-конструкторы
- Введение в ООП в JavaScript
- Про объекты и прототипы
- Проблема литеральных объектов
- Функции-конструкторы
- Использование прототипа
- Разница [[Prototype]], __proto__ и prototype
- Статические свойства
- Наследование свойств в функциях-конструкторах
- Наследование статических свойств
- Наследование методов в прототипах
- Запись в свойства объекта
- Цикл for..in и функции-конструкторы
- Геттеры и сеттеры для функций-конструкторов
- Переопределение методов
- Полифилы, расширение стандартных прототипов и автобоксинг
- Проверка вызова с new
- Нюансы при работе с функциями-конструкторами
- instanceof
16JS - 2 [2.6] - ООП и классы
- Классы
- Геттеры и сеттеры в классах
- Вычисляемые названия свойств и методов
- Статические свойства и методы
- Порядок свойств и методов в классе
- Наследование классов
- Наследование и порядок создания объекта
- Приватные методы и свойства
- Расширение нативных функций-конструкторов
- Абстрактные классы
- Миксины
- Пользовательские ошибки
17JS - 2 [2.7] - Модули
- Про модули
- export и import
- export default
- Реэкспорт
- Особенности и нюансы модулей
18JS - 2 [2.8] - Асинхронность
- Асинхронность в JavaScript
- callback-функции
- Промисы
- Промисы с then, catch и finally
- Промисы и цепочка методов
- Thenable интерфейс
- Создание отработанных промисов
- Обработка ошибок
- Перехват необработанных отклоненных промисов
- Статические методы Promise
- Промисификация
- async/await
- Нюансы async/await
- Асинхронные итераторы, генераторы и for..await
- Array.fromAsync()
- Динамические импорты
- Цикл событий - Event Loop
- Практика
19JS - 2 [2.9] - Npm
- Начало работы с npm
- Версионирование
- Публикация библиотек
20JS - 2 [2.10] - Работа с API
- Что такое HTTP и как он работает
- Структура HTTP-запроса
- Методы HTTP-запросов
- Что такое HTTPS
- Про API
- URL
- XMLHttpRequest
- Fetch
- Практика с fetch
- CORS
- Аутентификация и авторизация
- Аутентификация - практика
- ApiClient - практика
21Заключение
- Что дальше?
Отзывы о курсе
Оставьте отзыв
Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.
Оставьте заявку
Консультант ответит на вопросы о курсе «Программа: Твой JavaScript» и поможет разобраться в деталях обучения.
Нажимая кнопку, вы даете согласие на обработку персональных данных
Информация обновлена 14 сентября 2026 г.

Stepik 

















