Обмежений доступ для гостей

Вам доступно 3 уроки з цього курсу безкоштовно.

  • Коментарі доступні тільки авторизованим користувачам
  • Прогрес зберігається тільки 0:00
🔒
КурсиПрограмування / Поглиблений курс JavaScript

Поглиблений курс JavaScript

Вигляд:

Модуль 1. Глибоке розуміння JavaScript Engine

1

Як працює JavaScript Engine

V8, SpiderMonkey, JavaScriptCore - архітектура та принципи роботи.

2

Execution Context

Контекст виконання: створення, фази та життєвий цикл.

3

Call Stack

Стек викликів та його роль у виконанні коду.

4

Heap та управління пам\

Як JavaScript зберігає дані в пам'яті.

5

Garbage Collection

Алгоритми збору сміття: Mark-and-Sweep, Reference Counting.

6

JIT-компіляція

Just-In-Time компіляція та оптимізації V8.

Модуль 2. Event Loop та асинхронність

7

Event Loop глибоко

Повний цикл Event Loop: call stack, task queue, microtask queue.

8

Macrotasks vs Microtasks

setTimeout, setInterval vs Promise, queueMicrotask.

9

requestAnimationFrame

Анімації та рендеринг у браузері.

10

requestIdleCallback

Виконання низькопріоритетних задач.

11

Web Workers

Багатопотоковість у JavaScript.

12

SharedArrayBuffer та Atomics

Спільна пам'ять та атомарні операції.

Модуль 3. Scope та Closures

13

Lexical Scope

Лексична область видимості та її правила.

14

Scope Chain

Ланцюжок областей видимості та пошук змінних.

15

Hoisting глибоко

Підняття var, let, const, function, class.

16

Temporal Dead Zone

TDZ для let та const: чому це важливо.

17

Closures (Замикання)

Як працюють замикання та їх практичне застосування.

18

Module Pattern через closures

Створення приватних даних за допомогою замикань.

19

Closures та пам\

Memory leaks через замикання та як їх уникати.

Модуль 4. This та контекст виконання

20

Правила визначення this

Default, implicit, explicit, new binding.

21

call, apply, bind

Явне встановлення контексту виконання.

22

Arrow functions та this

Лексичний this в стрілочних функціях.

23

this у методах об\

Втрата контексту та способи вирішення.

24

this у класах

Контекст у конструкторах та методах класу.

25

this у callback-функціях

Типові помилки та best practices.

Модуль 5. Прототипи та наслідування

26

Prototype Chain

Ланцюжок прототипів та пошук властивостей.

27

__proto__ vs prototype

Різниця та правильне використання.

28

Object.create()

Створення об'єктів з заданим прототипом.

29

Object.getPrototypeOf/setPrototypeOf

Робота з прототипами програмно.

30

Прототипне наслідування

Реалізація наслідування без класів.

31

Функції-конструктори

Створення об'єктів через new та конструктори.

32

instanceof та Symbol.hasInstance

Перевірка типів та кастомізація instanceof.

Модуль 6. ES6+ Класи глибоко

33

Класи як синтаксичний цукор

Як класи працюють під капотом.

34

Constructor та super

Конструктори та виклик батьківського класу.

35

Статичні методи та властивості

Static members та їх використання.

36

Private fields (#)

Приватні поля та методи класу.

37

Getters та Setters

Властивості з геттерами та сеттерами.

38

Class fields

Публічні та приватні поля класу.

39

Mixins

Множинне наслідування через mixins.

40

Abstract patterns

Реалізація абстрактних класів у JavaScript.

Модуль 7. Promises глибоко

41

Promise internals

Як Promise працює під капотом.

42

Promise states та fate

Pending, fulfilled, rejected - стани та переходи.

43

Promise chaining

Ланцюжки промісів та передача значень.

44

Error handling у Promises

catch, finally та правильна обробка помилок.

45

Promise.all та Promise.allSettled

Паралельне виконання промісів.

46

Promise.race та Promise.any

Перегони промісів.

47

Promisification

Перетворення callback API на Promise-based.

48

Створення власного Promise

Імплементація Promise з нуля.

Модуль 8. Async/Await майстерність

49

Async functions internals

Як async/await працює під капотом.

50

Error handling з try/catch

Обробка помилок в асинхронному коді.

51

Паралельне виконання

Promise.all з async/await.

52

Sequential vs Parallel

Послідовне та паралельне виконання.

53

Top-level await

Await на верхньому рівні модуля.

54

Async iterators

for await...of та асинхронна ітерація.

55

AbortController

Скасування асинхронних операцій.

Модуль 9. Generators та Iterators

56

Iteration Protocol

Symbol.iterator та ітерабельні об'єкти.

57

Створення ітераторів

Власні ітератори для об'єктів.

58

Generators basics

function* та yield - основи генераторів.

59

Generator communication

Двосторонній зв'язок через next() та yield.

60

yield* делегування

Делегування виконання іншим генераторам.

61

Async Generators

Асинхронні генератори та async iteration.

62

Практичні застосування

Lazy evaluation, infinite sequences, state machines.

Модуль 10. Функціональне програмування

63

Pure Functions

Чисті функції та їх переваги.

64

Immutability

Незмінність даних та техніки імплементації.

65

Higher-Order Functions

Функції вищого порядку на практиці.

66

Currying

Каррування функцій та часткове застосування.

67

Partial Application

Часткове застосування аргументів.

68

Function Composition

Композиція функцій: pipe та compose.

69

Point-free Style

Tacit programming у JavaScript.

70

Functors та Monads basics

Основи функціональних патернів.

71

Maybe та Either

Обробка помилок функціонально.

Модуль 11. Метапрограмування

72

Symbols глибоко

Symbol та well-known symbols.

73

Symbol.iterator та Symbol.asyncIterator

Кастомізація ітерації.

74

Symbol.toStringTag та Symbol.toPrimitive

Кастомізація перетворення типів.

75

Proxy basics

Перехоплення операцій над об'єктами.

76

Proxy traps

get, set, has, deleteProperty та інші пастки.

77

Revocable Proxies

Проксі, які можна відкликати.

78

Reflect API

Рефлексія та мета-операції.

79

Практичні приклади Proxy

Validation, logging, reactive data.

Модуль 12. Object глибоко

80

Property Descriptors

Дескриптори властивостей: value, writable, enumerable, configurable.

81

Object.defineProperty

Визначення властивостей з дескрипторами.

82

Object.freeze/seal/preventExtensions

Контроль над змінами об'єктів.

83

Object.keys/values/entries

Перебір властивостей об'єкта.

84

Object.fromEntries

Створення об'єктів з entries.

85

Object.assign та spread

Копіювання та злиття об'єктів.

86

Deep clone strategies

Глибоке клонування: JSON, structuredClone, рекурсія.

87

Object.is та equality

Порівняння об'єктів та особливі випадки.

Модуль 13. Arrays та Collections

88

Array internals

Як масиви працюють у V8.

89

Sparse vs Dense Arrays

Розріджені та щільні масиви.

90

Array методи глибоко

map, filter, reduce, flatMap - внутрішня робота.

91

TypedArrays

Int8Array, Float32Array та бінарні дані.

92

ArrayBuffer та DataView

Робота з сирими бінарними даними.

93

Map та WeakMap

Колекції ключ-значення та їх відмінності.

94

Set та WeakSet

Множини та слабкі посилання.

95

WeakRef та FinalizationRegistry

Слабкі посилання та фіналізація.

Модуль 14. Strings та RegExp

96

Unicode у JavaScript

UTF-16, code points, surrogate pairs.

97

String методи глибоко

normalize, padStart, replaceAll та інші.

98

Template Literals advanced

Tagged templates та їх застосування.

99

RegExp basics

Основи регулярних виразів.

100

RegExp advanced

Lookahead, lookbehind, named groups.

101

RegExp flags

g, i, m, s, u, y - флаги та їх поведінка.

102

Unicode RegExp

\p{}, \P{} та Unicode categories.

103

String.prototype.matchAll

Ітерація по всіх збігах.

Модуль 15. Модулі JavaScript

104

ES Modules глибоко

Як працюють ES модулі під капотом.

105

import/export patterns

Named, default, re-export, aggregating.

106

Dynamic imports

import() та lazy loading.

107

import.meta

Метадані модуля.

108

Module resolution

Як браузер та Node.js знаходять модулі.

109

Circular dependencies

Циклічні залежності та як їх вирішувати.

110

Module patterns

Revealing Module, Singleton, Factory.

Модуль 16. Error Handling

111

Error types

TypeError, ReferenceError, SyntaxError та інші.

112

Custom Errors

Створення власних типів помилок.

113

Error.cause

Ланцюжок помилок та причини.

114

try/catch/finally глибоко

Особливості та підводні камені.

115

Global error handlers

window.onerror, unhandledrejection.

116

Error boundaries patterns

Ізоляція помилок у застосунках.

117

Defensive programming

Валідація та захисне програмування.

Модуль 17. DOM API глибоко

118

DOM Tree internals

Як браузер будує та зберігає DOM.

119

Node types та traversal

Навігація по DOM дереву.

120

DOM manipulation performance

DocumentFragment, batch updates.

121

MutationObserver

Спостереження за змінами DOM.

122

IntersectionObserver

Відстеження видимості елементів.

123

ResizeObserver

Реакція на зміну розмірів.

124

Custom Elements

Створення власних HTML елементів.

125

Shadow DOM

Інкапсуляція стилів та розмітки.

126

HTML Templates

template та slot елементи.

Модуль 18. Events глибоко

127

Event propagation

Capturing, target, bubbling фази.

128

Event delegation

Делегування подій та оптимізація.

129

Custom Events

Створення та диспатч власних подій.

130

EventTarget API

Використання EventTarget для власних об'єктів.

131

Passive event listeners

Оптимізація scroll та touch подій.

132

AbortSignal для events

Автоматичне видалення слухачів.

133

Pointer Events

Уніфіковані події для mouse, touch, pen.

Модуль 19. Browser APIs

134

Fetch API глибоко

Headers, Request, Response об'єкти.

135

Streams API

ReadableStream, WritableStream для потокової обробки.

136

Storage APIs

localStorage, sessionStorage, IndexedDB.

137

Cache API

Кешування ресурсів для офлайн.

138

History API

Навігація без перезавантаження.

139

Clipboard API

Робота з буфером обміну.

140

File API

Читання та обробка файлів.

141

Drag and Drop API

Перетягування елементів.

Модуль 20. Network та Communication

142

XMLHttpRequest legacy

Розуміння XHR для legacy коду.

143

CORS глибоко

Cross-Origin Resource Sharing механізм.

144

WebSockets

Двосторонній зв'язок у реальному часі.

145

Server-Sent Events

Односторонній потік даних від сервера.

146

Beacon API

Надсилання даних при закритті сторінки.

147

WebRTC basics

Peer-to-peer комунікація.

148

BroadcastChannel

Комунікація між вкладками.

Модуль 21. Performance Optimization

149

Critical Rendering Path

Як браузер рендерить сторінку.

150

Reflow та Repaint

Оптимізація DOM операцій.

151

Debounce та Throttle

Контроль частоти виконання функцій.

152

Virtual Scrolling

Оптимізація великих списків.

153

Code Splitting

Розділення коду та lazy loading.

154

Tree Shaking

Видалення невикористаного коду.

155

Memory Profiling

Виявлення memory leaks.

156

Performance API

Вимірювання продуктивності.

Модуль 22. Design Patterns

157

Singleton Pattern

Єдиний екземпляр класу.

158

Factory Pattern

Створення об'єктів через фабрику.

159

Builder Pattern

Покрокове створення складних об'єктів.

160

Observer Pattern

Підписка на зміни стану.

161

Pub/Sub Pattern

Publish-Subscribe для loose coupling.

162

Strategy Pattern

Взаємозамінні алгоритми.

163

Decorator Pattern

Розширення функціональності.

164

Command Pattern

Інкапсуляція запитів.

165

State Pattern

Зміна поведінки залежно від стану.

Модуль 23. Архітектурні патерни

166

MVC Pattern

Model-View-Controller архітектура.

167

MVP та MVVM

Альтернативні архітектурні підходи.

168

Flux Architecture

Односпрямований потік даних.

169

Repository Pattern

Абстракція доступу до даних.

170

Dependency Injection

Інверсія залежностей у JavaScript.

171

Event Sourcing basics

Зберігання стану через події.

172

CQRS basics

Розділення читання та запису.

Модуль 24. Security

173

XSS Prevention

Cross-Site Scripting та захист.

174

CSRF Protection

Cross-Site Request Forgery.

175

Content Security Policy

CSP headers та налаштування.

176

Sanitization

Очищення користувацького вводу.

177

Secure Storage

Безпечне зберігання даних.

178

JWT та Authentication

Токени та автентифікація.

179

HTTPS та Mixed Content

Безпечні з'єднання.

Модуль 25. Testing

180

Unit Testing principles

Принципи модульного тестування.

181

Test Doubles

Mocks, stubs, spies, fakes.

182

Integration Testing

Тестування взаємодії компонентів.

183

E2E Testing concepts

End-to-end тестування.

184

Test-Driven Development

TDD підхід до розробки.

185

Code Coverage

Покриття коду тестами.

186

Testing async code

Тестування асинхронного коду.

Модуль 26. Build Tools та Bundlers

187

npm та package.json

Управління залежностями глибоко.

188

Semantic Versioning

Версіонування пакетів.

189

Webpack concepts

Основні концепції Webpack.

190

Vite та ESBuild

Сучасні швидкі bundlers.

191

Babel та transpilation

Транспіляція сучасного JavaScript.

192

Source Maps

Відлагодження транспільованого коду.

193

Polyfills та ponyfills

Підтримка старих браузерів.

Модуль 27. Node.js для фронтенд-розробників

194

Node.js Event Loop

Відмінності від браузерного Event Loop.

195

CommonJS vs ESM

Модульні системи Node.js.

196

File System операції

Робота з файлами у Node.js.

197

Streams у Node.js

Потокова обробка даних.

198

Child Processes

Запуск дочірніх процесів.

199

Cluster module

Масштабування Node.js застосунків.

Модуль 28. Практичний проект: State Manager

200

Архітектура State Manager

Проектування власного менеджера стану.

Коментарі

💬

Коментарі доступні тільки для авторизованих користувачів