πΊοΈ JavaScript
Π‘Π°ΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π·Π΄Π΅Π» vault'Π°. Π‘Π½Π°ΡΠ°Π»Π° ΠΡΠ½ΠΎΠ²Ρ β Π€ΡΠ½ΠΊΡΠΈΠΈ β ΠΠΠ β ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ β DOM β ΠΠ°ΡΡΠ΅ΡΠ½Ρ.
Π‘ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² JavaScript
- JavaScript -- ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈ Π³Π΄Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
- Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
- ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
- ΠΠ±ΡΠ΅ΠΊΡΡ
- ΠΠ°ΡΡΠΈΠ²Ρ
- JS ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Ρ
- ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ (Closures)
ΠΡΠ½ΠΎΠ²Ρ
Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
- Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Β· Number Β· BigInt Β· Boolean Β· String Β· null ΠΈ undefined
- Π§ΠΈΡΠ»Π° -- Number, Math, parseInt, parseFloat Β· Π‘ΡΡΠΎΠΊΠΈ -- ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ Β· JS ΡΡΡΠΎΠΊΠΈ
- ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Β· ΠΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² -- ΡΠ²Π½ΠΎΠ΅ ΠΈ Π½Π΅ΡΠ²Π½ΠΎΠ΅
ΠΠ°ΡΡΠΈΠ²Ρ
- ΠΠ°ΡΡΠΈΠ²Ρ Β· JS ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΎΡΠ½ΠΎΠ²Ρ
- ΠΠ΅ΡΠΎΠ΄Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² -- push, pop, shift, unshift Β· ΠΠ΅ΡΠΎΠ΄Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² -- map, filter, reduce Β· ΠΠ΅ΡΠΎΠ΄Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² -- find, some, every, includes
ΠΠ±ΡΠ΅ΠΊΡΡ ΠΈ Symbol
- ΠΠ±ΡΠ΅ΠΊΡΡ Β· JS ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΎΡΠ½ΠΎΠ²Ρ Β· Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² -- ΡΡΡΠ»ΠΊΠΈ vs Π·Π½Π°ΡΠ΅Π½ΠΈΡ
- Symbol Β· JS Symbol ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ Β· Symbol ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΡΡΡ Β· Symbol.toPrimitive ΠΈ Symbol.iterator
ΠΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ
- Scope Β· ΠΠ»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Β· ΠΠ»ΠΎΡΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ -- let ΠΈ const
- Hoisting -- ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ Β· Temporal Dead Zone (TDZ) Β· Reference ΠΈ Lexical Environment Β· Strict mode
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ
- ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ Β· JS ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Β· Π£ΡΠ»ΠΎΠ²ΠΈΡ Β· Π£ΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ -- if, else, switch
- Spread ΠΈ Rest Β· ΠΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΡ Β· Optional chaining ΠΈ nullish coalescing
Π¦ΠΈΠΊΠ»Ρ
ΠΡΠΎΡΠ΅Π΅
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ JS
- ES6+ -- ΠΎΠ±Π·ΠΎΡ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ Β· Proxy ΠΈ Reflect Β· Temporal API
- Record ΠΈ Tuple (proposal) Β· Tagged Template Literals Β· WeakRef ΠΈ FinalizationRegistry
- Three Phases of JS Execution Β· V8 Hidden Classes (Shapes) Β· V8 Element Kinds (ΡΠΈΠΏΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²)
Π€ΡΠ½ΠΊΡΠΈΠΈ
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΡΠΎΡΠΌΡ
- JS ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Ρ Β· Function Declaration Β· Function Expression Β· Arrow Function Β· IIFE Β· Callback
- ΠΠΏΠ΅ΡΠ°ΡΠΎΡ return Β· ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Β· ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
- ΠΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Β· ΠΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Β· Π€ΡΠ½ΠΊΡΠΈΠΈ -- ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ
- ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ (Closures) Β· ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ -- funarg-ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Β· ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ Π² ΡΠΈΠΊΠ»Π΅ -- ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°
ΠΠ°ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΡΠΌΡ
- Higher-Order Functions Β· Π€ΡΠ½ΠΊΡΠΈΠΈ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Β· Π§Π΅ΠΉΠ½ΠΈΠ½Π³ ΡΡΠ½ΠΊΡΠΈΠΉ Β· ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ
- ΠΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΡ Β· Π Π΅ΠΊΡΡΡΠΈΡ Β· Π₯Π²ΠΎΡΡΠΎΠ²Π°Ρ ΡΠ΅ΠΊΡΡΡΠΈΡ Β· Thunks Β· Functor ΠΈ Applicative
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ (this)
- this Β· this Π² ΠΎΠ±ΡΡΠ½ΡΡ ΠΈ ΡΡΡΠ΅Π»ΠΎΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΡ Β· this Π² callback ΠΈ API
- bind Β· call ΠΈ apply Β· ΠΠΎΡΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° -- ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ
ΠΠΠ ΠΈ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ β _MOC ΠΠΠ
- ΠΡΠΎΡΠΎΡΠΈΠΏΡ Β· ΠΡΠΎΡΠΎΡΠΈΠΏΠ½Π°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ° Β· __proto__ vs prototype
- Object.create() Β· Delegation Chain
- ΠΠ»Π°ΡΡΡ Β· ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Β· constructor -- ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
- ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Β· ΠΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Β· ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ vs ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ
- ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ Β· ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Β· ΠΠ±ΡΡΡΠ°ΠΊΡΠΈΡ
- ΠΠΈΠΊΡΠΈΠ½Ρ (Mixins) Β· ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ -- ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ
- Composition Pattern Β· Constructor Pattern
- Property Descriptors Β· ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Object (ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ)
- ΠΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ° -- hasOwnProperty, isPrototypeOf
- ΠΠΏΠ΅ΡΠ°ΡΠΎΡ instanceof Β· ΠΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ ΠΈ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ
- ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ vs Π΄Π°Π½Π½ΡΠ΅ Π² JS Β· ΠΠ½Π΅ΠΌΠΈΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈ ΠΠΠ Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π°
- ΠΡΡΠΎΡΠΈΠ°ΡΠΈΡ, Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ, ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ
- ΠΠΎΠΌΠΈΠ½Π°Π»ΡΠ½Π°Ρ vs ΡΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
- ΠΠ½ΡΠΈΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΠΠ
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ
Promise
- Promise Β· Thenable Β· Promise.withResolvers Β· Deferred Β· Future
- Cancellable Promise Β· Promisify, callbackify, asyncify
async/await + Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ
- async-await Β· Async stack trace Β· Async ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΎΡΡ
- JS Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ Β· ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ
Event Loop + ΡΠ°ΠΉΠΌΠ΅ΡΡ
ΠΡΠΎΡΠ΅Π΅
DOM
ΠΠΎΠΈΡΠΊ ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ
- DOM vs HTML -- Π² ΡΡΠΌ ΡΠ°Π·Π½ΠΈΡΠ° Β· DOM Π΄Π΅ΡΠ΅Π²ΠΎ Β· DOM-Π΄Π΅ΡΠ΅Π²ΠΎ -- ΡΠ·Π»Ρ ΠΈ ΡΠΈΠΏΡ ΡΠ·Π»ΠΎΠ² Β· document ΠΈ window Β· BOM
- DOM ΠΏΠΎΠΈΡΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Β· ΠΠΎΠΈΡΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Β· getElementById, getElementsByClassName Β· querySelectorAll ΠΈ NodeList
- ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΏΠΎ DOM Β· parentElement, children, siblings Β· firstChild, lastChild, nextSibling
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ childNodes ΠΈ children Β· closest -- ΠΏΠΎΠΈΡΠΊ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ
ΠΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ
- ΠΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ DOM Β· DOM ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Β· createElement ΠΈ createTextNode
- append, prepend, before, after Β· insertAdjacentHTML Β· cloneNode -- ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- textContent, innerHTML, innerText Β· DOM Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° Β· ΠΡΡΠΈΠ±ΡΡΡ -- getAttribute, setAttribute
- data-Π°ΡΡΠΈΠ±ΡΡΡ (dataset) Β· classList -- add, remove, toggle, contains Β· style -- ΠΈΠ½Π»Π°ΠΉΠ½-ΡΡΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· JS
- DOM ΡΡΠΈΠ»ΠΈ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ Β· getBoundingClientRect -- ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΡ
- DocumentFragment -- ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Β· Batch DOM updates
Π‘ΠΎΠ±ΡΡΠΈΡ
- Π‘ΠΎΠ±ΡΡΠΈΡ Β· DOM ΡΠΎΠ±ΡΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ ΠΌΡΡΠΈ Β· Π‘ΠΎΠ±ΡΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ -- keydown, keyup
- Π‘ΠΎΠ±ΡΡΠΈΡ ΠΌΡΡΠΈ -- click, mouseover, mouseenter Β· Π‘ΠΎΠ±ΡΡΠΈΡ ΡΠΎΠΊΡΡΠ° -- focus, blur Β· Π‘ΠΎΠ±ΡΡΠΈΠ΅ scroll
- Π‘ΠΎΠ±ΡΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ -- DOMContentLoaded, load Β· DOM ΡΠΎΠ±ΡΡΠΈΡ ΡΠΎΡΠΌ Β· Π‘ΠΎΠ±ΡΡΠΈΡ ΡΠΎΡΠΌΡ -- submit, input, change
- Π Π°Π±ΠΎΡΠ° Ρ ΡΠΎΡΠΌΠ°ΠΌΠΈ ΡΠ΅ΡΠ΅Π· JS Β· Constraint Validation API Β· ΠΠ°ΡΡΠΎΠΌΠ½Π°Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΡΠΎΡΠΌ
- ΠΡΠΏΠ»ΡΡΠΈΠ΅ ΠΈ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΠ΅ Β· ΠΠ΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ Β· preventDefault ΠΈ stopPropagation
- ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ -- CustomEvent Β· ΠΠ°ΡΡΠΎΠΌΠ½ΡΠΉ Drag and Drop Β· IntersectionObserver
ΠΡΠ°ΡΠ·Π΅ΡΠ½ΡΠ΅ API β _MOC ΠΡΠ°ΡΠ·Π΅ΡΠ½ΡΠ΅ API
Π‘Π΅ΡΡ ΠΈ ΡΠ²ΡΠ·Ρ
- Fetch API Β· WebSocket ΠΊΠ»ΠΈΠ΅Π½Ρ Β· WebRTC Β· Service Worker Β· PWA β Progressive Web App
- Cache API Β· BroadcastChannel Β· Web Locks Β· URLSearchParams
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΈ ΡΠ°ΠΉΠ»Ρ
- Web Storage -- localStorage ΠΈ sessionStorage Β· IndexedDB Β· OPFS β Origin Private File System
- Clipboard API Β· FormData API Β· FormData ΠΈ multipart
ΠΠ΅Π΄ΠΈΠ°
ΠΠ°Π±Π»ΡΠ΄Π°ΡΠ΅Π»ΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
- MutationObserver -- Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π·Π° DOM Β· ResizeObserver -- ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°
- Performance API Β· requestAnimationFrame Β· Web Workers
Π£ΡΠΈΠ»ΠΈΡΡ ΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
- Console API Β· DOMParser Β· History API Β· Geolocation API Β· Web Crypto API
- Drag and Drop API Β· window navigator location Β· window.matchMedia Β· DOM β ΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ
Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠ΄ΡΠ»ΠΈ
- ΠΠΎΠ΄ΡΠ»ΠΈ -- import ΠΈ export Β· ES Modules Β· CommonJS Β· CommonJS vs ES Modules
- ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠΌΠΏΠΎΡΡ -- import() Β· ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ² -- script ΡΠ΅Π³
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
- JS ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Β· try...catch...finally Β· Π’ΠΈΠΏΡ ΠΎΡΠΈΠ±ΠΎΠΊ -- Error, TypeError, ReferenceError
- ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Β· ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π² async ΠΊΠΎΠ΄Π΅
- JS ΠΎΡΠ»Π°Π΄ΠΊΠ° Π² DevTools Β· ΠΡΠ»Π°Π΄ΠΊΠ° -- console, debugger, breakpoints
Π Π°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ
- JSON Β· Map ΠΈ Set Β· WeakMap ΠΈ WeakSet Β· Π‘ΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
- ΠΡΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ Β· Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- ΠΠ°ΡΠ° ΠΈ Π²ΡΠ΅ΠΌΡ Β· Date ΠΈ Intl -- ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ Β· Intl API
- Π‘ΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ -- structuredClone
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ
- Debounce ΠΈ Throttle Π΄Π»Ρ DOM-ΡΠΎΠ±ΡΡΠΈΠΉ Β· ΠΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Β· ΠΠ΅Π½ΠΈΠ²ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ
- ΠΡΠΈΠ²Π°ΡΠ½ΠΎΡΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ Β· Π’ΡΠ°ΠΌΠΏΠ»ΠΈΠ½ (Trampoline)
Canvas API
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠ½ΠΎΠ²Ρ Π€Π
- Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° JS (Π¨Π΅ΠΌΡΠ΅Π΄ΠΈΠ½ΠΎΠ²) Β· ΠΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ Β· ΠΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΠΠ vs Π€Π)
- Π§ΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Β· ΠΠΎΠ±ΠΎΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ Β· ΠΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ Β· ΠΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
- Π€ΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° Β· Referential Transparency Β· ΠΡΠΌΠ±Π΄Π°-ΠΈΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΈ Π€Π ΠΈΡΡΠΎΡΠΈΡ
- ΠΠ°Π΄ΡΠΆΠ½ΠΎΡΡΡ Π€Π-ΠΊΠΎΠ΄Π° ΠΈ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Β· Coupling, Cohesion ΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ Π² Π€Π
- Ownership ΠΈ Traits Π² JS Β· Π€Π ΠΈ SOLID GRASP GoF Β· Talks ΠΎ Π€Π (ΠΠΎΠ²ΡΠΉ Π³ΠΎΠ΄ ΠΈ Π€Π)
ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈ ΠΊΠ°ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ (pipe, compose) Β· Π§Π°ΡΡΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΊΠ°ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Π¨Π΅ΠΌΡΠ΅Π΄ΠΈΠ½ΠΎΠ²)
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Β· Actor Compose (ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π°ΠΊΡΠΎΡΠ°)
- ΠΠ΄Π°ΠΏΡΠ΅ΡΡ asyncify, promisify, callbackify Β· callbackify ΠΈ class adapter
- ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅ΡΠΈ ΠΈ ΠΎΠ±ΡΡΡΠΊΠΈ Β· ΠΠΈΠ½Π·Ρ (Lenses) -- Π€Π getter ΠΈ setter
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΈ ΠΠΎΠ½Π°Π΄Ρ
- ΠΠΎΠ½Π°Π΄Ρ -- ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ JS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Β· Functors, Monads ΠΈ Applicatives (Π¨Π΅ΠΌΡΠ΅Π΄ΠΈΠ½ΠΎΠ²)
- ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Result Maybe Either Β· IO ΠΌΠΎΠ½Π°Π΄Π° ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΡΡΡΠ΅ΠΊΡΠΎΠ² Β· Callable Thenable Iterable Observable
Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ
- Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ Β· Observer Observable ΠΏΠ°ΡΡΠ΅ΡΠ½
- RxJS ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ Β· Node.js streams ΠΈ pipe
ΠΠ°ΡΡΠ΅ΡΠ½Ρ β ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΊΠ°ΡΡΠ° _MOC ΠΠ°ΡΡΠ΅ΡΠ½Ρ
Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅
- _MOC HTML Β· _MOC CSS Β· _MOC Node.js Β· _MOC TypeScript Β· _MOC SPA