JavaScript Bootcamp
Научитесь думать как программист и использовать весь технический арсенал средств чтобы стать JS разработчиком
Несколько слов о курсе
БЕСПЛАТНАЯ ПРОБНАЯ ВЕРСИЯЧат для студентов и мои контакты
ВАЖНО - Нужно ли вам проходить эту секцию
Введение
Как выполнять код
Самое важное в JavaScript
Что такое console.log
Выражения
Переменные
Объявление переменных
Практика по созданию переменных
Примитивные типы
Ссылочный тип
Динамическая типизация
Объекты
Создание и удаление свойств объектов
Вложенные свойства
Сокращенный формат записи свойств
Глобальные объекты
Методы объекта
JSON - JavaScript Object Notation
Мутация в JavaScript
Как избежать мутаций объектов
Что такое функция
Объявление и вызов функции
Передача значения по ссылке
Колбэк функции
Правила работы с функциями
Области видимости
Цепочка областей видимости
Жизненный цикл переменных
Типы областей видимости
Строгий режим
Операторы
Оператор присваивания
Унарные и бинарные операторы
Форматы записи операторов
Приоритетность операторов
Логические операторы
Ложные значения
Практика с typeof оператором
Оператор НЕ
Оператор короткого замыкания И
Оператор короткого замыкания ИЛИ
Трюк с оператором И и вызовом функции
Цепочки выражений с операторами И и ИЛИ
Оператор разделения объекта на свойства
Конкатенация строк
Функциональные выражения
Стрелочные функции
Значения параметров функции по умолчанию
Обработка ошибок
Инструкции
Выражения-инструкции
Как отличить инструкцию от выражения
Массивы
Оператор сравнения для массивов и объектов
Массив против Объекта
Как работать с элементами массива
Методы массивов
Метод forEach
Метод map
Деструктуризация объектов
Деструктуризация массивов
Деструктуризация параметров функции
Условные инструкции
Условная инструкция if else
Условная инструкция if else if
Использование if в функциях
Инструкция switch
Тернарный оператор
Циклы
Цикл for
Для перебора массивов не нужен for
Цикл while
Цикл do while
Цикл for in
Методы keys и values для объектов
Цикл for in для массивов
Цикл for of
Модули
Создание и запуск модулей с помощью Node
Несколько экспортов
Правила работы с модулями
Практика по созданию нескольких экспортов
Как используются модули в React
Введение в классы и прототипы
Пример класса
Создание экземпляров класса
Цепочка прототипов
Проверка принадлежности классу
Вызов унаследованных методов
Практика по созданию классов и экземпляров
Проверка принадлежности свойств объектов
Создание нескольких экземпляров
Статические методы
Практика по созданию статических методов
Расширение других классов
Что же такое прототип
Строки и числа ведут себя как объекты
Введение в промисы
Создание и использование промисов
Использование промисов в fetch
Практика по использованию промисов и fetch
Практика с отклонением промисов
Вызов fetch внутри промиса
Асинхронные функции
Использование await внутри асинхронных функций
Пример с async await
Переход с промисов на async await
Обработка ошибок в асинхронных функциях
Ключевые принципы в async await
Завершение
ВАЖНО - Нужно ли вам проходить эту секцию
ВАЖНО - Скачайте файлы для всех задач этой секции
ЗАДАЧА 1 - Объявление переменной
✓ ЗАДАЧА 1 - Объявление переменной
ЗАДАЧА 2 - Присваивание нового значения переменной
✓ ЗАДАЧА 2 - Присваивание нового значения переменной
ЗАДАЧА 3 - Умножение двух чисел
✓ ЗАДАЧА 3 - Умножение двух чисел
ЗАДАЧА 4 - Объединение строк
✓ ЗАДАЧА 4 - Объединение строк
ЗАДАЧА 5 - Комментарии
✓ ЗАДАЧА 5 - Комментарии
ЗАДАЧА 6 - Типы данных
✓ ЗАДАЧА 6 - Типы данных
ЗАДАЧА 7 - Объявление и вызов функции
✓ ЗАДАЧА 7 - Объявление и вызов функции
ЗАДАЧА 8 - Присваивание функции переменной
✓ ЗАДАЧА 8 - Присваивание функции переменной
ЗАДАЧА 9 - Стрелочная функция
✓ ЗАДАЧА 9 - Стрелочная функция
ЗАДАЧА 10 - Комментарий перед функцией
✓ ЗАДАЧА 10 - Комментарий перед функцией
ЗАДАЧА 11 - Колбэк функция
✓ ЗАДАЧА 11 - Колбэк функция
ЗАДАЧА 12 - Создание объекта
✓ ЗАДАЧА 12 - Создание объекта
ЗАДАЧА 13 - Длина строки
✓ ЗАДАЧА 13 - Длина строки
ЗАДАЧА 14 - Строка заглавными буквами
✓ ЗАДАЧА 14 - Строка заглавными буквами
ЗАДАЧА 15 - Замена части строки
✓ ЗАДАЧА 15 - Замена части строки
ЗАДАЧА 16 - Создание массива
✓ ЗАДАЧА 16 - Создание массива
ЗАДАЧА 17 - Замена элементов массива
✓ ЗАДАЧА 17 - Замена элементов массива
ЗАДАЧА 18 - Перебор элементов массива
✓ ЗАДАЧА 18 - Перебор элементов массива
ЗАДАЧА 19 - Добавление элементов в массив
✓ ЗАДАЧА 19 - Добавление элементов в массив
ЗАДАЧА 20 - Дата
✓ ЗАДАЧА 20 - Дата
ЗАДАЧА 21 - Сравнение переменных
✓ ЗАДАЧА 21 - Сравнение переменных
ЗАДАЧА 22 - Остаток от деления
✓ ЗАДАЧА 22 - Остаток от деления
ЗАДАЧА 23 - ИЛИ и И операторы
✓ ЗАДАЧА 23 - ИЛИ и И операторы
ЗАДАЧА 24 - Альтернативные бинарные операторы
✓ ЗАДАЧА 24 - Альтернативные бинарные операторы
ЗАДАЧА 25 - Выражение или инструкция
✓ ЗАДАЧА 25 - Выражение или инструкция
ЗАДАЧА 26 - Что будет выведено в консоли
✓ ЗАДАЧА 26 - Что будет выведено в консоли
ЗАДАЧА 27 - Const
✓ ЗАДАЧА 27 - Const
ЗАДАЧА 28 - Let
✓ ЗАДАЧА 28 - Let
ЗАДАЧА 29 - Строгий режим
✓ ЗАДАЧА 29 - Строгий режим
ЗАДАЧА 30 - Колбэк функция
✓ ЗАДАЧА 30 - Колбэк функция
ЗАДАЧА 31 - Интервалы и Таймауты
✓ ЗАДАЧА 31 - Интервалы и Таймауты
ЗАДАЧА 32 - Добавление элементов в начало массива
✓ ЗАДАЧА 32 - Добавление элементов в начало массива
ЗАДАЧА 33 - Добавление элемента по определенному индексу
✓ ЗАДАЧА 33 - Добавление элемента по определенному индексу
ЗАДАЧА 34 - Массив объектов
✓ ЗАДАЧА 34 - Массив объектов
ЗАДАЧА 35 - Итерация по свойствам объекта
✓ ЗАДАЧА 35 - Итерация по свойствам объекта
ЗАДАЧА 36 - Случайные числа
✓ ЗАДАЧА 36 - Случайные числа
ЗАДАЧА 37 - Цикл "for .. in"
✓ ЗАДАЧА 37 - Цикл "for .. in"
ЗАДАЧА 38 - Тернарный оператор
✓ ЗАДАЧА 38 - Тернарный оператор
ЗАДАЧА 39 - Перебор элементов массива
✓ ЗАДАЧА 39 - Перебор элементов массива
ЗАДАЧА 40 - Конвертация JSON в JavaScript объекты
✓ ЗАДАЧА 40 - Конвертация JSON в JavaScript объекты
ЗАДАЧА 41 - Поиск объектов в массиве
✓ ЗАДАЧА 41 - Поиск объектов в массиве
ЗАДАЧА 42 - Проверка сортировки массива
✓ ЗАДАЧА 42 - Проверка сортировки массива
ЗАДАЧА 43 - Сравнение двух массивов
✓ ЗАДАЧА 43 - Сравнение двух массивов
ЗАДАЧА 44 - Поиск элементов примитивных типов в массиве
✓ ЗАДАЧА 44 - Поиск элементов примитивных типов в массиве
ЗАДАЧА 45 - Поиск элементов в массивах
✓ ЗАДАЧА 45 - Поиск элементов в массивах
ЗАДАЧА 46 - Добавление уникальных элементов в массив
✓ ЗАДАЧА 46 - Добавление уникальных элементов в массив
ЗАДАЧА 47 - Использование метода "reduce" для создания массива
✓ ЗАДАЧА 47 - Использование метода "reduce" для создания массива
ЗАДАЧА 48 - Использование метода "reduce" для создания объекта
✓ ЗАДАЧА 48 - Использование метода "reduce" для создания объекта
ЗАДАЧА 49 - Сортировка объектов в массиве
✓ ЗАДАЧА 49 - Сортировка объектов в массиве
ЗАДАЧА 50 - Шаблонные строки
✓ ЗАДАЧА 50 - Шаблонные строки
ЗАДАЧА 51 - Операторы rest и spread
✓ ЗАДАЧА 51 - Операторы rest и spread
ЗАДАЧА 52 - Параметры функции по умолчанию
✓ ЗАДАЧА 52 - Параметры функции по умолчанию
ЗАДАЧА 53 - Сокращенное написание свойств объектов
✓ ЗАДАЧА 53 - Сокращенное написание свойств объектов
ЗАДАЧА 54 - Деструктуризация массива
✓ ЗАДАЧА 54 - Деструктуризация массива
ЗАДАЧА 55 - Деструктуризация результата функции
✓ ЗАДАЧА 55 - Деструктуризация результата функции
ЗАДАЧА 56 - Деструктуризация объектов
✓ ЗАДАЧА 56 - Деструктуризация объектов
ЗАДАЧА 57 - Трансформация массива объектов
✓ ЗАДАЧА 57 - Трансформация массива объектов
ЗАДАЧА 58 - Удаление свойств объекта
✓ ЗАДАЧА 58 - Удаление свойств объекта
ЗАДАЧА 59 - Расширение массивов
✓ ЗАДАЧА 59 - Расширение массивов
ЗАДАЧА 60 - Модифицированный метод push для массивов
✓ ЗАДАЧА 60 - Модифицированный метод push для массивов
ЗАДАЧА 61 - Сумма чисел
✓ ЗАДАЧА 61 - Сумма чисел
ЗАДАЧА 62 - Разница в объявлении функций
✓ ЗАДАЧА 62 - Разница в объявлении функций
ЗАДАЧА 63 - Зона видимости функции
✓ ЗАДАЧА 63 - Зона видимости функции
ЗАДАЧА 64 - Hoisting
✓ ЗАДАЧА 64 - Hoisting
ЗАДАЧА 65 - Тернарный оператор
✓ ЗАДАЧА 65 - Тернарный оператор
ЗАДАЧА 66 - Стрелочные функции
✓ ЗАДАЧА 66 - Стрелочные функции
ЗАДАЧА 67 - Параметры функции по умолчанию
✓ ЗАДАЧА 67 - Параметры функции по умолчанию
ЗАДАЧА 68 - Проверка наличия аргументов в вызове функции
✓ ЗАДАЧА 68 - Проверка наличия аргументов в вызове функции
ЗАДАЧА 69 - Деструктуризация объектов
✓ ЗАДАЧА 69 - Деструктуризация объектов
ЗАДАЧА 70 - Деструктуризация массивов и "rest" оператор
✓ ЗАДАЧА 70 - Деструктуризация массивов и "rest" оператор
ЗАДАЧА 71 - Spread Operator
✓ ЗАДАЧА 71 - Spread Operator
ЗАДАЧА 72 - Копия массива
✓ ЗАДАЧА 72 - Копия массива
ЗАДАЧА 73 - Шаблонные строки
✓ ЗАДАЧА 73 - Шаблонные строки
ЗАДАЧА 74 - Деструктуризация объектов
✓ ЗАДАЧА 74 - Деструктуризация объектов
ЗАДАЧА 75 - Перебор символов строки
✓ ЗАДАЧА 75 - Перебор символов строки
ЗАДАЧА 76 - Поменять местами значения двух переменных
✓ ЗАДАЧА 76 - Поменять местами значения двух переменных
ЗАДАЧА 77 - Замыкания
✓ ЗАДАЧА 77 - Замыкания
ЗАДАЧА 78 - Классы
✓ ЗАДАЧА 78 - Классы
ЗАДАЧА 79 - Перебор свойств объекта
✓ ЗАДАЧА 79 - Перебор свойств объекта
ЗАДАЧА 80 - Сумма положительных и отрицательных чисел
✓ ЗАДАЧА 80 - Сумма положительных и отрицательных чисел
Введение
Скачайте файлы
Настройка редактора кода и установка необходимых программ
Переменные в JavaScript
ВАЖНО - Какую версию ESLint использовать
Настройка ESLint для проверки кода (Часть 1)
Настройка ESLint для проверки кода (Часть 2)
Объекты (Часть 1)
Объекты (Часть 2)
Включение набора правил Airbnb в настройках ESLint
Массивы (Часть 1)
Массивы (Часть 2)
Деструктуризация
Строки
Функции (Часть 1)
Функции (Часть 2)
Функции (Часть 3)
Функции (Часть 4)
Стрелочные функции (Часть 1)
БЕСПЛАТНАЯ ПРОБНАЯ ВЕРСИЯСтрелочные функции (Часть 2)
Классы (Часть 1)
Классы (Часть 2)
Классы (Часть 3)
Классы (Часть 4)
Модули (Часть 1)
Модули (Часть 2)
Модули (Часть 3)
Итераторы и генераторы (Часть 1)
Итераторы и генераторы (Часть 2)
Переменные и hoisting (Часть 1)
Переменные и hoisting (Часть 2)
Операторы (Часть 1)
Операторы (Часть 2)
Форматирование (Часть 1)
Форматирование (Часть 2)
Форматирование (Часть 3)
Форматирование (Часть 4)
Другие рекомендации (Часть 1)
Другие рекомендации (Часть 2)
(Опционально) Создание GitHub PR с предложениями изменений стилевого гайда для JS (Часть 1)
(Опционально) Создание GitHub PR с предложениями изменений стилевого гайда для JS (Часть 2)
(Опционально) Создание GitHub PR с предложениями изменений стилевого гайда для JS (Часть 3)
(Опционально) Обсуждение GitHub PR для репозитория Airbnb
Введение
Скачайте файлы
Подготовка к обсуждению рекомендаций по написании чистого кода (Часть 1)
Подготовка к обсуждению рекомендаций по написании чистого кода (Часть 2)
Переменные (Часть 1)
Переменные (Часть 2)
Функции (Часть 1)
Функции (Часть 2)
Функции (Часть 3)
Функции (Часть 4)
Функции (Часть 5)
Функции (Часть 6)
Функции (Часть 7)
Функции (Часть 8)
Функции (Часть 9)
Классы (Часть 1)
Классы (Часть 2)
Принципы SOLID (Часть 1)
Принципы SOLID (Часть 2)
Принципы SOLID (Часть 3)
БЕСПЛАТНАЯ ПРОБНАЯ ВЕРСИЯПринципы SOLID (Часть 4)
Принципы SOLID (Часть 5)
Принципы SOLID (Часть 6)
Принципы SOLID (Часть 7)
Принципы SOLID (Часть 8)
Тестирование (Часть 1)
Тестирование (Часть 2)
Колбэк-функции, промисы и асинхронные функции (Часть 1)
Колбэк-функции, промисы и асинхронные функции (Часть 2)
Остальные рекомендации по написанию чистого кода
Скачайте файлы
Рекомендации по написанию кода в Standard Style Guide (Часть 1)
Рекомендации по написанию кода в Standard Style Guide (Часть 2)
Рекомендации по написанию кода в Standard Style Guide (Часть 3)
Рекомендации по написанию кода в Standard Style Guide (Часть 4)
JavaScript массивы, объекты, async/await, классы, модули, ESLint, Node.js, NPM, Webpack, REST API, Express, Docker, Git, GitHub
“Очень понятно и подробно объясняются все моменты шаг за шагом. Так должны преподаваться все новые, сложные предметы. Рекомендую однозначно к просмотру и изучению.”
Григорий“Лектор имеет чёткое произношение, рассказывает последовательно, следит за правильностью произносимых терминов, обращает внимание на важные моменты.”
Андрей“Качественное представление материала. Огромное спасибо Богдану, объясняет так, что не понять просто не возможно :)”
Алёна