JavaScript kursi
Brauzer va server uchun universal til. DOM, async/await, ES6+ va zamonaviy JS.
O'rta · 85 ta dars · ~3 oy
Mavzular: ES6+ sintaksis, DOM manipulyatsiya, Event handling, Async/Await, Fetch API, Prototip va OOP, Modullar, LocalStorage, Error handling, Zamonaviy patterns
Kirish va Asoslar
- JavaScript nima? Brauzer da qanday ishlaydi, V8 engine
- O'zgaruvchilar — var, let, const va ularning farqi
- Ma'lumot turlari — string, number, boolean, null, undefined, symbol, bigint
- Operatorlar — arifmetik, taqqoslash, mantiqiy, bitwise
- Type Coercion — avtomatik tur o'zgartirish va uning xavflari
- Shartlar — if/else, switch, ternary
- Sikllar — for, while, do-while, for...of, for...in
- Funksiyalar — declaration, expression, arrow function
Funksiyalar chuqurroq
- Scope — global, function, block scope
- Hoisting — o'zgaruvchi va funksiyalar qanday ko'tariladi
- Closure — nima va qanday ishlaydi
- Higher Order Functions — funksiyani parametr va qaytish qiymati sifatida
- Callback funksiyalar
- Pure funksiyalar va Side Effects
- Recursion — o'z-o'zini chaqirish
- IIFE — Immediately Invoked Function Expression
Ob'ektlar va Massivlar
- Ob'ektlar — yaratish, o'qish, o'zgartirish, o'chirish
- Ob'ekt metodlari — this kalit so'zi
- Ob'ekt metodlari — Object.keys, values, entries, assign, freeze
- Destructuring — ob'ekt va massiv
- Spread va Rest operatori
- Massivlar — yaratish va asosiy metodlar — push, pop, shift, unshift, splice, slice
- Massiv metodlari — map, filter, reduce
- Massiv metodlari — find, findIndex, some, every, flat, flatMap
- Optional Chaining va Nullish Coalescing
- String metodlari — split, join, trim, replace, includes, startsWith, endsWith, padStart, padEnd
OOP
- Prototype va Prototype Chain
- Constructor funksiyalar
- Class — asoslar, constructor, maydonlar
- Class — extends va super
- Class — static, getter, setter
- Private maydonlar — # belgisi
- Mixin pattern
Asinxron JavaScript
- Sinxron va Asinxron — farqi va nima uchun kerak
- Event Loop — Call Stack, Task Queue, Microtask Queue
- Callback va Callback Hell
- Promise — asoslar, then, catch, finally
- Promise kombinatorlari — all, allSettled, race, any
- Async/Await — asoslar
- Async/Await — xatolarni ushlash, parallel va ketma-ket bajarish
- Fetch API — HTTP so'rovlar, headers, method, body
- Fetch API — xatolarni ushlash, loading holati, AbortController
Brauzer API lari
- DOM — getElementById, querySelector, querySelectorAll
- DOM — createElement, appendChild, innerHTML, textContent
- DOM — addEventListener, removeEventListener, event ob'ekti
- DOM — Event Bubbling, Capturing, Delegation
- DOM — forma bilan ishlash — input, submit, validation
- BOM — window, location, history, navigator
- Local Storage va Session Storage
- Cookie — o'qish, yozish, o'chirish
- WebSocket — real-time ulanish
- Intersection Observer — lazy loading uchun
- MutationObserver — DOM o'zgarishlarini kuzatish
Modullar
- ES Modullar — import, export, re-export
- Dynamic import — lazy loading
- CommonJS — require, module.exports
- ES Modullar va CommonJS farqi
Ilg'or mavzular
- Iterator va Generator
- Symbol — nima va qachon kerak
- Proxy va Reflect
- WeakMap va WeakSet — nima uchun kerak
- Map va Set — Object va Array dan farqi, qachon ishlatiladi
- Error turlari va xatolarni boshqarish — try, catch, finally, custom error
- Regular Expression — asoslar va amaliyot
- Garbage Collection — xotira qanday tozalanadi, Memory Leak
Funksional dasturlash
- Funksional dasturlash nima va nima uchun kerak (tez kunda)
- Immutability — o'zgarmaslik (tez kunda)
- Composition va Pipe pattern (tez kunda)
- Currying va Partial Application (tez kunda)
Vanilla JS + Vite
- Vite nima va nima uchun kerak — webpack bilan farqi (tez kunda)
- Vite o'rnatish va loyiha tuzilishi (tez kunda)
- Vite — import.meta.env, environment variables (tez kunda)
- Vite — CSS, SCSS, PostCSS sozlash (tez kunda)
- Vite — asset lar bilan ishlash — rasm, font, svg (tez kunda)
- Vite — proxy sozlash — API so'rovlar uchun (tez kunda)
- Vite — build va optimize qilish (tez kunda)
- Vanilla JS + Vite — real loyiha — SPA yaratish (tez kunda)
- Vanilla JS + Vite — router — history API bilan (tez kunda)
- Vanilla JS + Vite — state boshqarish — oddiy store pattern (tez kunda)
Amaliy va Professional mavzular
- Design Patterns — Singleton, Factory, Observer, Strategy (tez kunda)
- Testing — Jest bilan JavaScript testlash (tez kunda)
- Debugging — brauzer DevTools da xatolarni topish (tez kunda)
- Performance — debounce, throttle, memoization (tez kunda)
- Security — XSS, CSRF va ulardan himoya (tez kunda)
- Accessibility — a11y asoslari, ARIA (tez kunda)