1. Урок 1.00:06:12
    Как проходить данный курс
  2. Урок 2.00:06:53
    Почему этот курс?
  3. Урок 3.00:21:49
    Настройка рабочего пространства
  4. Урок 4.00:33:26
    (д) Eslint. Подсказки об ошибках и автоматическое форматирование кода
  5. Урок 5.00:11:39
    Что такое JS и как его подключить к странице
  6. Урок 6.00:05:45
    Про упражнения и дополнительные уроки
  7. Урок 7.00:16:01
    Переменные и строгий режим
  8. Урок 8.00:13:44
    (д) Правила и типы названия переменных
  9. Урок 9.00:16:22
    Классификация типов данных в JavaScript
  10. Урок 10.00:19:24
    (д) Разница между объектами и массивами и неочевидные синтаксические возможности
  11. Урок 11.00:14:40
    Простое общение с пользователем
  12. Урок 12.00:03:59
    Интерполяция (ES6)
  13. Урок 13.00:14:30
    Операторы в JS
  14. Урок 14.00:25:07
    Учимся работать с системой контроля версий Git и с сервисом GitHub
  15. Урок 15.00:15:53
    Как работать с GitHub с разных компьютеров, gitignore и Git Kraken
  16. Урок 16.00:12:59
    (д) Сетевые протоколы. Подключение компьютера к аккаунту Github через SSH
  17. Урок 17.00:11:41
    Практика, ч.1. Начинаем создавать приложение
  18. Урок 18.00:12:18
    Условия
  19. Урок 19.00:33:24
    (д) Логические операторы
  20. Урок 20.00:08:48
    Циклы
  21. Урок 21.00:17:21
    (д) Цикл в цикле и метки
  22. Урок 22.00:17:05
    Практика, ч2. Применяем условия и циклы
  23. Урок 23.00:20:16
    Функции, стрелочные ф-ции (ES6)
  24. Урок 24.00:07:12
    (д) Еще раз про аргументы функций
  25. Урок 25.00:13:30
    (д) Про важность return
  26. Урок 26.00:19:31
    Методы и свойства строк и чисел
  27. Урок 27.00:15:15
    Практика , ч3. Используем функции
  28. Урок 28.00:04:37
    (д) Метод trim()
  29. Урок 29.00:07:24
    Callback- функции
  30. Урок 30.00:24:35
    Объекты, деструктуризация объектов (ES6)
  31. Урок 31.00:23:51
    Массивы и псевдомассивы
  32. Урок 32.00:24:58
    Передача по ссылке или по значению, Spread оператор (ES6-ES9)
  33. Урок 33.00:16:25
    Основы ООП, прототипно-ориентированное наследование
  34. Урок 34.00:20:57
    Практика , ч4. Используем объекты
  35. Урок 35.00:13:37
    Отлавливаем ошибки в своем коде при помощи консоли разработчика. Breakpoints
  36. Урок 36.00:14:21
    Динамическая типизация в JS
  37. Урок 37.00:30:37
    Замыкание и лексическое окружение
  38. Урок 38.00:17:56
    Задачи с собеседований на понимание основ
  39. Урок 39.00:18:18
    Получение элементов со страницы
  40. Урок 40.00:34:59
    Действия с элементами на странице
  41. Урок 41.00:20:50
    Практика. Задание на отработку действий со страницей
  42. Урок 42.00:26:21
    События и их обработчики
  43. Урок 43.00:15:40
    Навигация по DOM - элементам, data-атрибуты, преимущество for/of
  44. Урок 44.00:43:58
    Рекурсия
  45. Урок 45.00:32:47
    Практика. Используем события на странице проекта
  46. Урок 46.00:13:23
    События на мобильных устройствах
  47. Урок 47.00:15:00
    Async, defer, динамические скрипты
  48. Урок 48.00:12:57
    (д) Оператор нулевого слияния (Nullish, ??) ES11
  49. Урок 49.00:11:46
    (д) Оператор опциональной цепочки (?.) ES11
  50. Урок 50.00:18:15
    (д) Живые коллекции и полезные методы
  51. Урок 51.00:16:05
    (д) Тип данных Symbol
  52. Урок 52.00:22:33
    (д) Дескрипторы свойств и полезные методы объектов
  53. Урок 53.00:21:07
    (*) Итерируемые конструкции
  54. Урок 54.00:26:37
    (*) Map
  55. Урок 55.00:11:37
    (*) Set
  56. Урок 56.00:10:38
    (*) BigInt
  57. Урок 57.00:02:00
    Про что будет этот модуль
  58. Урок 58.00:21:35
    ClassList и делегирование событий
  59. Урок 59.00:22:20
    Создаем табы в новом проекте
  60. Урок 60.00:21:29
    Скрипты и время их выполнения. setTimeout и setInterval
  61. Урок 61.00:20:39
    (д) Сборщик мусора и утечки памяти
  62. Урок 62.00:18:54
    (*) WeakMap и WeakSet
  63. Урок 63.00:17:37
    Работа с датами
  64. Урок 64.00:25:30
    Создаем таймер обратного отсчета на сайте
  65. Урок 65.00:03:45
    (*) Обработка прошедшей даты
  66. Урок 66.00:23:29
    Параметры документа, окна и работа с ними
  67. Урок 67.00:19:09
    Создаем модальное окно
  68. Урок 68.00:11:05
    Модификации модального окна
  69. Урок 69.00:11:16
    (д) MutationObserver, ResizeObserver и contenteditable
  70. Урок 70.00:10:37
    Функции-конструкторы
  71. Урок 71.00:27:07
    Контекст вызова. This
  72. Урок 72.00:15:52
    Классы (ES6)
  73. Урок 73.00:18:59
    Используем классы в реальной работе
  74. Урок 74.00:17:02
    Rest оператор и параметры по умолчанию (ES6)
  75. Урок 75.00:11:20
    Локальные сервера
  76. Урок 76.00:09:14
    JSON формат передачи данных, глубокое клонирование объектов
  77. Урок 77.00:26:25
    AJAX и общение с сервером
  78. Урок 78.00:26:18
    Реализация скрипта отправки данных на сервер
  79. Урок 79.00:24:41
    Красивое оповещение пользователя
  80. Урок 80.00:26:19
    Promise (ES6)
  81. Урок 81.00:20:48
    Fetch API
  82. Урок 82.00:29:00
    Методы перебора массивов
  83. Урок 83.00:18:38
    Подробно про npm и проект. JSON-server
  84. Урок 84.00:32:44
    Получение данных с сервера. Async/Await (ES8)
  85. Урок 85.00:08:55
    Дополнительно: Что такое библиотеки. Библиотека axios
  86. Урок 86.00:17:05
    Создаем слайдер на сайте, вариант 1
  87. Урок 87.00:23:35
    Создаем слайдер на сайте, вариант 2
  88. Урок 88.00:15:51
    Создаем навигацию для слайдов
  89. Урок 89.00:16:28
    Как сохранить данные без БД. Работа с localStorage
  90. Урок 90.00:23:49
    Регулярные выражения
  91. Урок 91.00:32:23
    Создаем калькулятор на сайте, часть 1
  92. Урок 92.00:18:23
    Создаем калькулятор на сайте, часть 2
  93. Урок 93.00:05:09
    Геттеры и сеттеры (свойства объектов)
  94. Урок 94.00:20:21
    Инкапсуляция
  95. Урок 95.00:09:35
    Прием модуль, как и зачем его использовать
  96. Урок 96.00:29:05
    Webpack. Собираем наш проект
  97. Урок 97.00:10:39
    ES6 Modules
  98. Урок 98.00:33:50
    Собираем наш проект и фиксим баги
  99. Урок 99.00:08:13
    Формируем портфолио на GitHub
  100. Урок 100.00:11:01
    Ошибки. Как избежать “поломки” своего кода
  101. Урок 101.00:10:27
    (д) Создание своих ошибок
  102. Урок 102.00:20:40
    Как превратить код ES6+ в старый формат ES5. Babel, Core.js и полифиллы
  103. Урок 103.00:19:59
    Современные библиотеки и фрэймворки
  104. Урок 104.00:29:21
    Библиотека Jquery
  105. Урок 105.00:08:00
    Функции-генераторы
  106. Урок 106.00:12:12
    JS анимации, requestAnimationFrame
  107. Урок 107.00:14:10
    (*) Web Animations API
  108. Урок 108.00:23:13
    Event loop, подробная работа асинхронных и синхронных операций
  109. Урок 109.00:09:06
    Макро и микрозадачи
  110. Урок 110.00:16:55
    Работаем с готовым кодом
  111. Урок 111.00:02:42
    Введение
  112. Урок 112.00:03:32
    Что такое реакт, зачем он нам и почему не обычный JS
  113. Урок 113.00:16:32
    Фундаментальные принципы Реакта
  114. Урок 114.00:13:36
    Create React App - создаем свое приложение
  115. Урок 115.00:32:03
    Работаем с JSX-препроцессором, ограничения в нем
  116. Урок 116.00:26:07
    Элементы и компоненты
  117. Урок 117.00:04:37
    Строгий режим
  118. Урок 118.00:43:39
    Создание нового проекта
  119. Урок 119.00:13:04
    Свойства компонентов
  120. Урок 120.00:20:01
    Практика свойств на проекте
  121. Урок 121.00:14:56
    Работа со списками и алгоритм согласования
  122. Урок 122.00:18:22
    Состояния компонентов
  123. Урок 123.00:03:32
    Самостоятельное задание на работу с состояниями
  124. Урок 124.00:17:14
    События в React и вспоминаем this
  125. Урок 125.00:07:41
    Практика состояний на проекте
  126. Урок 126.00:10:26
    Работа с формами, управляемые и неуправляемые компоненты
  127. Урок 127.00:24:24
    Иммутабельность состояния и собственные события
  128. Урок 128.00:31:16
    Практика. Подъём состояния
  129. Урок 129.00:05:04
    React-фрагменты
  130. Урок 130.00:36:55
    Практика. Реализуем поиск и фильтры
  131. Урок 131.00:08:59
    Семантика и доступность контента
  132. Урок 132.00:05:40
    Стили в React. Inline Styles
  133. Урок 133.00:08:11
    Стили в React. CSS и SASS/SCSS
  134. Урок 134.00:04:06
    Стили в React. Динамические классы и стили
  135. Урок 135.00:20:43
    Стили в React. Styled Components
  136. Урок 136.00:14:35
    Стили в React. Готовые библиотеки компонентов со стилями
  137. Урок 137.00:07:16
    Поля классов и static
  138. Урок 138.00:02:19
    Заключение модуля
  139. Урок 139.00:12:10
    Что такое API и как работают реальные приложения
  140. Урок 140.00:28:57
    Новый проект и работа с сервером
  141. Урок 141.00:32:00
    Трансформация данных и компонент со случайным персонажем
  142. Урок 142.00:25:11
    Хороший тон приложения (спиннер, ошибки...)
  143. Урок 143.00:23:52
    Жизненный цикл компонентов
  144. Урок 144.00:38:37
    Практика с жизненным циклом, componentDidUpdate
  145. Урок 145.00:18:32
    Предохранители (Error Boundaries)
  146. Урок 146.00:28:45
    Пагинация данных (дозагрузка персонажей)
  147. Урок 147.00:07:19
    Проверка типов с помощью PropTypes
  148. Урок 148.00:18:41
    Вставка элементов через props.children
  149. Урок 149.00:04:01
    Специализация и наследование
  150. Урок 150.00:13:26
    Render-props паттерн
  151. Урок 151.00:20:24
    Что такое ref и зачем он нужен
  152. Урок 152.00:15:16
    Порталы
  153. Урок 153.00:28:05
    “Бандлинг” и выгрузка проекта на сервер
  154. Урок 154.00:05:33
    Введение в хуки
  155. Урок 155.00:27:36
    useState
  156. Урок 156.00:22:01
    useEffect
  157. Урок 157.00:13:19
    useCallback
  158. Урок 158.00:14:17
    useMemo
  159. Урок 159.00:10:59
    useRef
  160. Урок 160.00:22:52
    Практика. Перепишем весь проект на хуки
  161. Урок 161.00:23:53
    Создание собственных хуков
  162. Урок 162.00:44:35
    Практика собственных хуков на проекте
  163. Урок 163.00:11:50
    Что такое batching и как он работает в React 18+
  164. Урок 164.00:15:51
    (д) useTransition, useDeferredValue и другие нововведения React 18+
  165. Урок 165.00:32:42
    Навигация в приложении, React Router v5+
  166. Урок 166.00:21:55
    React Router v6+
  167. Урок 167.00:34:44
    Практика создания динамических путей
  168. Урок 168.00:26:13
    Динамические импорты и React.lazy
  169. Урок 169.00:30:15
    React.memo, Pure Component и оптимизация скорости работы приложения
  170. Урок 170.00:33:48
    React Context и useContext
  171. Урок 171.00:20:44
    useReducer
  172. Урок 172.00:27:52
    Компоненты высшего порядка (HOC)
  173. Урок 173.00:02:18
    Библиотеки и экосистема React
  174. Урок 174.00:44:19
    React Transition Group
  175. Урок 175.00:53:35
    Formik, Yup и работа с формами любой сложности, часть 1
  176. Урок 176.00:31:15
    Formik, Yup и работа с формами любой сложности, часть 2
  177. Урок 177.00:14:43
    Разбор домашнего задания
  178. Урок 178.00:17:36
    SEO-оптимизация веб-приложений, React-helmet
  179. Урок 179.00:52:44
    ❗Принцип конечного автомата (FSM, Finite-state machine) и +1 подход к состояниям
  180. Урок 180.00:14:23
    Разбираем ошибки сторонних библиотек и проблему с фокусом
  181. Урок 181.00:15:33
    Основные принципы Redux. Теория
  182. Урок 182.00:35:06
    Основные принципы Redux. Практика
  183. Урок 183.00:09:09
    Чистые функции
  184. Урок 184.00:15:18
    Оптимизация через actionCreators и bindActionCreator
  185. Урок 185.00:14:10
    Добавим React в проект
  186. Урок 186.00:24:36
    Соединяем React и Redux при помощи connect
  187. Урок 187.00:17:15
    Соединяем React и Redux при помощи хуков
  188. Урок 188.00:04:19
    Redux devtools
  189. Урок 189.00:27:25
    Правило названия action и домашнее задание (мини-экзамен)
  190. Урок 190.00:10:27
    Разбор самых сложных моментов
  191. Урок 191.00:28:19
    Комбинирование reducers и красивые селекторы. CreateSelector()
  192. Урок 192.00:01:35
    Про сложность реальной разработки
  193. Урок 193.00:10:24
    Store enhancers
  194. Урок 194.00:09:58
    Middleware
  195. Урок 195.00:09:59
    Redux-thunk
  196. Урок 196.00:13:23
    Redux Toolkit: configureStore()
  197. Урок 197.00:07:33
    Redux Toolkit: createAction()
  198. Урок 198.00:22:04
    Redux Toolkit: createReducer()
  199. Урок 199.00:21:58
    Redux Toolkit: createSlice()
  200. Урок 200.00:20:33
    Redux Toolkit: createAsyncThunk()
  201. Урок 201.00:36:23
    Redux Toolkit: createEntityAdapter()
  202. Урок 202.00:06:14
    Подводные камни домашнего задания
  203. Урок 203.00:04:16
    Про разные структуры проектов и закрепление материала
  204. Урок 204.00:56:14
    ❗️ Redux Toolkit: RTK Query
  205. Урок 205.00:01:40
    Что дальше?
  206. Урок 206.00:01:35
    Эпилог
  207. Урок 207.00:03:43
    Вступление к практическому курсу
  208. Урок 208.00:15:37
    Настраиваем сборку проекта и разбираемся с ТЗ
  209. Урок 209.00:30:45
    Работа с модальными окнами
  210. Урок 210.00:25:09
    Работа с табами (вкладками) на странице
  211. Урок 211.00:31:10
    Работа с формами отправки данных
  212. Урок 212.00:18:46
    Работа с формой-калькулятором, часть 1
  213. Урок 213.00:38:54
    Работа с формой-калькулятором, часть 2
  214. Урок 214.00:22:02
    Работа с таймером
  215. Урок 215.00:11:08
    Реализуем модуль с показом изображений
  216. Урок 216.00:11:32
    Улучшаем наш проект (анимации, правильное поведение overflow)