JavaScript Lessons

From basics to advanced: ES6+, async programming, DOM manipulation, and more.

JavaScript Basics

Lesson 1

JavaScript Qanday Ishlaydi?

JavaScript engine qanday ishlashini o'rganing: Memory Heap, Call Stack, funksiya chaqiruvlari va execution context.

Lesson 2

Execution Context nima?

Execution Context tushunchasini o'rganing: Global va Function Execution Context, Creation Phase va Execution Phase.

Lesson 3

Variable (var / let / const)

JavaScript'da variable tushunchasini o'rganing: var, let va const farqlari, scope, TDZ, hoisting va qachon qaysi biri ishlatiladi.

Lesson 4

Scope

JavaScript'da Scope tushunchasini o'rganing: Global scope, Function scope, Block scope, Lexical scope va Scope Chain.

Lesson 5

Hoisting

JavaScript'da Hoisting tushunchasini o'rganing: Execution Context'ning creation phase, var, let, const va function declaration hoisting.

Lesson 6

Data Types (Primitive vs Reference)

JavaScript'da Primitive va Reference data type'larini o'rganing: ularning farqi, xotira modeli va qanday ishlashini tushuning.

Lesson 7

Type Coercion

JavaScript'da Type Coercion qanday ishlashini o'rganing: ToPrimitive algoritmi, operatorlar, boolean coercion va == comparison.

Lesson 8

Operatorlar

JavaScript'da operatorlar qanday ishlashini o'rganing: equality, arithmetic, assignment, comparison, logical operators va nullish coalescing.

Lesson 9

Strict Mode

JavaScript'da Strict Mode nima, qanday ishlashi va nimalarni o'zgartirishini o'rganing.

Lesson 10

Stack va Heap

JavaScript'da stack va heap xotira tuzilmalari, primitive va reference turlari o'rtasidagi farq, call stack, stack overflow va memory leak tushunchalarini o'rganing.

Lesson 11

JavaScript'da Loops

JavaScript'da for, while, do...while, for...in va for...of sikllarini hamda map, filter, reduce metodlarini real misollar bilan o'rganing.

Lesson 12

Function Declaration vs Function Expression

JavaScript'da function declaration va function expression farqlari, hoisting, temporal dead zone hamda amaliy ishlatilish holatlarini o'rganing.

Lesson 13

Arrow Function - to'liq tushuncha

Arrow function sintaksisi, oddiy function'dan farqlari, lexical this, arguments, constructor cheklovlari va callback'lardagi real qo'llanilishini o'rganing.

Lesson 14

Call Stack nima?

JavaScript'da Call Stack qanday ishlashi, LIFO tartibi, stack overflow xatosi va Event Loop bilan bog'liqligini sodda misollar bilan tushuning.

Lesson 15

Lexical Scope

Lexical Scope nima, Execution Context qanday ishlaydi, Creation va Execution Phase, Scope turlari va Scope Chain — barchasi bitta darsda.

Lesson 16

Closure

Closure nima, V8 ichida qanday ishlaydi, [[Environment]] pointer, va closure ning klassik holatlar — counter va loop tuzo'g'i.

Lesson 17

this

this nima, V8 ichida qanday ishlaydi, 4 ta qoida (implicit, losing, explicit, new), arrow function ning this mexanizmi.

Lesson 18

call, apply, bind

this ni qo'lda belgilash — call, apply, bind farqi, V8 ichida BoundFunction va Internal Slots qanday ishlaydi.

Lesson 19

IIFE

IIFE nima, nega qavslar kerak, V8 ichida qanday ishlaydi va Module Pattern, loop + var muammosi kabi real ishlatilishlari.

Lesson 20

Recursion

Recursion nima, base case va recursive case, Call Stack qanday to'ladi va bo'shaydi, Stack Overflow, va Tail Call Optimization.

Lesson 21

Higher-Order Function

HOF nima, First-Class Function tushunchasi, map/filter/reduce qanday ishlaydi, function composition va V8 ning JIT optimallashtirishi.

Lesson 22

Object ichki tuzilishi

V8 obyektlarni qanday saqlaydi — Hidden Class, offset, Transition Chain, Inline Cache va Dictionary Mode ga o'tish.

Lesson 23

Property Descriptor

Property lar orqasidagi yashirin metadata — writable, enumerable, configurable, accessor descriptor, freeze/seal va extensible.

Lesson 24

Prototype Chain

[[Prototype]] va __proto__ nima, property qidirish zanjiri, Elements Kind, hasOwnProperty vs in, va constructor function orqali prototype sharing.

Lesson 25

Constructor Function

Constructor function nima, .prototype qanday avtomatik biriktiriladi, new siz chaqirilsa nima bo'ladi, instanceof, constructor property va new.target.

Lesson 26

new keyword ichida nima bo'ladi?

new operatori bajaradigan 4 qadam — yangi obyekt, prototype bog'lash, this bilan chaqirish, return qiymatini tekshirish — va arrow function bilan ishlamasligi.

Lesson 27

Class (Syntactic Sugar)

Class tagida nima yotadi — constructor function + prototype. newsiz chaqirilmasligi, enumerable:false metodlar, TDZ va avtomatik strict mode kabi haqiqiy farqlar.

Lesson 28

Inheritance

Prototype orqali meros — eski ES5 usuli va extends/super bilan zamonaviy usul, super() qanday this yaratadi, super.method() va ko'p darajali meros.

Lesson 29

Static Method

Static metod oddiy metoddan qanday farq qiladi, V8 ichida qayerda saqlanadi, factory pattern, static ichida this va static metodlarning meros olinishi.

Lesson 30

Private va Public Field'lar

Class field deklaratsiyasi, # private field va metodlar, V8 ichida maxsus private slot, brand check (#field in obj) va closure orqali "private" bilan solishtirish.

Lesson 31

Object.create

Object.create nima qiladi, new'dan farqi, Object.create(null), ikkinchi argument (descriptor), toza inheritance va Object.setPrototypeOf bilan performance solishtiruvi.

Lesson 32

Encapsulation Pattern

Ichki holatni himoya qilishning to'rt usuli — closure, private field (#), getter/setter validatsiya bilan va Object.freeze — va ularni birlashtirgan to'liq BankAccount misoli.

Lesson 33

Map

Nega Map kerak, istalgan turdagi key, V8 ichida hash table + insertion order, Map vs Object performance va to'liq metodlar solishtiruvi.

Lesson 34

Set

Set nima, nega array.includes() o'rniga Set kerak, V8 ichida hash table, SameValueZero, array'ni noyob qilish patterni va Set vs Array solishtiruvi.

Lesson 35

WeakMap

Map'ning kuchli referensi memory leak'ga qanday olib keladi, WeakMap qanday yechadi, V8 GC Mark-and-Sweep bilan bog'liqligi va DOM/private-data amaliy holatlar.

Lesson 36

WeakSet

WeakSet nima, nega faqat obyekt qabul qiladi, WeakMap bilan farqi, GC-friendly "marking" pattern va brand-check misoli graf aylanish (traverse) orqali.

Lesson 37

Symbol

Symbol nima, nega yaratilgan, V8 uni xotirada qanday saqlaydi, Hidden Class bilan bog'liqligi, well-known Symbol'lar (Symbol.iterator, Symbol.toPrimitive) va Symbol.for() global registry.

Lesson 38

Iterator

Iteration Protocol nima, Iterable va Iterator o'rtasidagi farq, for...of ichida V8 aslida nima qilishi, custom Iterable yasash, V8 optimallashtirishlari va Iterator Helpers (ES2024).

Lesson 39

Iterable Protocol

Protocol tushunchasi, Iterable Protocol'ning aniq spec ta'rifi, nega aynan Symbol.iterator ishlatilgani, GetIterator abstrakt operatsiyasi va Iterable bilan Iterator o'rtasidagi eng ko'p uchraydigan chalkashlik.

Lesson 40

Iterator Protocol

Iterator Protocol'ning aniq spec ta'rifi, IteratorResult semantikasi, .next(value) orqali qiymat yuborish, ixtiyoriy .return()/.throw() metodlari va V8 ichida Iterator qanday amalga oshirilishi (shu jumladan iterator elision).

Lesson 41

Generator

Generator nima, function*/yield sintaksisi, Generator = Iterator + Iterable, .next(value) orqali ikki tomonlama aloqa, yield*, va V8 ichida Generator holat mashinasi (JSGeneratorObject) sifatida qanday amalga oshirilishi.

Lesson 42

Proxy & Reflect

Proxy nima, 13 xil trap (get, set, has, deleteProperty, apply, construct va h.k.), Reflect nima uchun Proxy bilan juftlashtirilgan, V8 ichida Proxy Hidden Class/Inline Cache'ni qanday chetlab o'tishi, invariant'lar va Vue 3 reactivity kabi real qo'llanilishlar.

Lesson 43

Destructuring, for...of, Spread/Rest

Array va Object destructuring nima uchun ikkita butunlay boshqa mexanizm, for...of va spread'ning Iterator Protocol bilan bog'liqligi, rest parametr, va V8 darajasida bularning har biri qanday optimallashtirilishi.

Lesson 44

Single-thread model

JavaScript nima uchun bitta thread'da ishlaydi, race condition muammosi, V8'dagi yagona Call Stack, main thread blocking, va 'single-threaded' aslida butun brauzerga emas, faqat JS Engine'ga tegishli ekani.

Lesson 45

Web APIs

setTimeout, fetch, addEventListener kabi funksiyalar aslida V8'ning bir qismi emasligi, ular brauzer/Node.js taqdim etadigan tashqi imkoniyatlar ekani, va Call Stack, Web APIs, Callback/Microtask Queue o'rtasidagi ishlash tartibi.

Lesson 46

Event Loop

Event Loop'ning oddiy qoidasi (Stack bo'sh bo'lsa, Queue'dan ol), Microtask va Macrotask navbatlari o'rtasidagi prioritet, har bir Macrotask'dan keyin Microtask Queue to'liq bo'shatilishi, brauzerdagi rendering bosqichi, va Microtask Queue V8'da, Macrotask esa runtime'da joylashgani.

Lesson 47

Callback

Callback nima ekani (sinxron va asinxron), continuation-passing style, Callback Hell (Pyramid of Doom) muammosi, Node.js'dagi error-first callback konventsiyasi, va closure orqali callback V8 darajasida qanday ishlashi.

Lesson 48

Promise ichki mexanizmi

Promise'ning uchta holati ([[PromiseState]]), internal slotlari, executor'ning sinxron ishlashi, resolve/reject closure orqali qanday bog'langani, .then() yangi Promise qaytarishi, Resolution Procedure orqali flatten bo'lishi, .catch() propagation, va .then() nega har doim microtask ekani.

Lesson 49

Microtask vs Macrotask

Macrotask va Microtask nega ikki xil navbat ekani, ularning to'liq manbalar ro'yxati va farqlar jadvali, queueMicrotask, Node.js'dagi process.nextTick, microtask starvation xavfi, va ikkalasi V8/runtime darajasida qanday farqlanishi.

Lesson 50

Async/Await

async/await Promise ustidagi sintaktik shakar ekani, async funksiya har doim Promise qaytarishi, await funksiyani generator kabi qanday 'muzlatishi', bu mexanizm V8'da generator+Promise+Event Loop kombinatsiyasi orqali ishlashi, va awaitlarni parallel ishlatish.

Lesson 51

Error handling async'da

Nega oddiy try/catch asinxron kodda ishlamasligi, Promise'da xato .catch() orqali qanday tarqalishi, async/await try/catchni qanday 'tiklashi', Promise.all/allSettled/race/any orasidagi xato boshqarish farqi, va unhandled rejection nima ekani.

Lesson 52

Promise chaining

Promise chaining'ning to'g'ri yozilishi: har doim return qilish qoidasi, ichma-ich .then() yozishning xatoligi, zanjir ichida qiymat transformatsiyasi, xatoning zanjir bo'ylab qanday oqishi, .finally(), va V8'da har bir .then() bo'g'ini qanday alohida Promise ekani.

Lesson 53

DOM nima?

DOM nima ekani va nega kerakligi, brauzer HTML'ni qanday parsing qilib DOM daraxtiga aylantirishi, DOM node'larining prototype zanjiri (EventTarget → Node → Element → HTMLElement), va live HTMLCollection bilan static NodeList orasidagi farq.

Lesson 54

DOM tree vs Render tree

DOM tree va Render tree orasidagi farq, CSSOM nima ekani, brauzer DOM+CSSOM'ni Render tree'ga qanday birlashtirishi, display:none va visibility:hidden orasidagi Render tree darajasidagi farq, va bu bilim performance uchun nega muhimligi.

Lesson 55

Reflow vs Repaint

Render tree ekranga chiqishdagi uch bosqich — Layout (Reflow), Paint (Repaint), Composite — va ularning narx farqi, har bosqichni keltirib chiqaruvchi CSS xususiyatlar, Layout Thrashing (Forced Synchronous Layout) xavfi, va uni oldini olish usuli.

Lesson 56

Event bubbling

Event bubbling nima ekani, capturing/target/bubbling uch bosqichli model qanday paydo bo'lgani, brauzer darajasida bubbling zanjiri qanday ishlashi, event.target vs event.currentTarget, stopPropagation(), va qaysi hodisalar bubbling qilmasligi.

Lesson 57

Event capturing

Event capturing bubbling'ning aksi ekani, addEventListener'ning uchinchi argumenti orqali capturing/bubbling tanlanishi, to'liq uch bosqichli oqim, capturing nima uchun kerakligi (stopPropagation'dan himoya, modal/dropdown), va brauzer bu ikkovini bitta yo'l massivi orqali qanday amalga oshirishi.

Lesson 58

Event delegation

Event delegation texnikasi: bitta ota-elementga listener qo'yib bubbling orqali barcha bola elementlarni boshqarish, nega bu xotira/performance va dinamik elementlar uchun foydali, closest() bilan to'g'ri nishonni topish, va bubbling qilmaydigan hodisalardagi cheklov.

Lesson 59

Storage APIs

Brauzerdagi to'rtta asosiy saqlash vositasi — Cookie, localStorage, sessionStorage, IndexedDB — ularning hajmi, umri, sinxron/asinxron ishlashi, va bularning barchasi V8 heap'idan tashqarida, diskda, origin bo'yicha qanday saqlanishi.

Lesson 60

Fetch API

fetch() nima ekani va XMLHttpRequest'dan nega ustunligi, u Promise+Microtask+Event Loop mashinasini real tarmoq so'roviga qanday qo'llashi, Response obyektining ikki bosqichli dizayni, fetch() HTTP xatolarni nega avtomatik reject qilmasligi, va CORS/Same-Origin Policy.

Lesson 61

AbortController

AbortController nima ekani va fetch()ni bekor qilish uchun nega kerakligi, race condition va memory leak muammolarini qanday hal qilishi, EventTarget asosida qanday ishlashi, bitta signal bilan bir nechta operatsiyani bekor qilish, va AbortSignal.timeout().

Lesson 62

Garbage Collection

Garbage Collection nima ekani, reachability tushunchasi va reference counting'dan nega ustunligi, V8'ning Young/Old Generation xotira bo'linishi, Scavenger va Mark-Sweep-Compact algoritmlari, va Stop-the-world muammosini yumshatish texnikalari.

Lesson 63

Memory Leak

Memory leak nima ekani va bu GC xatosi emas, reference boshqaruvi xatosi ekani, eng keng tarqalgan besh leak turi (timer, event listener, closure, global o'zgaruvchi, detached DOM), va WeakMap/WeakRef qanday yechim berishi.

Lesson 64

Hidden Classes (V8)

V8'ning hidden class mexanizmi: dinamik JS obyektlarni tezkor xotira murojaati uchun qanday 'shape'larga aylantirishi, bir xil tartibda property qo'shilgan obyektlar bir xil hidden class'ni ulashishi, va tartibni buzish yoki delete ishlatish nega deoptimizatsiyaga olib kelishi.

Lesson 65

JIT & Deoptimization

V8'ning JIT strategiyasi: Ignition interpretator va TurboFan optimizing compiler qanday ishlashi, TurboFan tur taxminlariga asoslangan tezkor kod yozishi, guard va deoptimization (bailout) mexanizmi, va polymorphism/megamorphism kabi deoptimizatsiyaga olib boruvchi sabablar.

Lesson 66

Debounce

Debounce texnikasi: closure va setTimeout/clearTimeout orqali tez-tez ishga tushadigan hodisalarni (input, scroll, resize) qanday cheklashi, leading vs trailing debounce, va V8'dagi xotira/hidden class oqibatlari.

Lesson 67

Throttle

Throttle texnikasi va debounce'dan farqi, timestamp-based va timer-based (trailing) implementatsiyalar, Event Loop/rendering bilan bog'liqligi, requestAnimationFrame asosidagi throttle, va qachon debounce, qachon throttle ishlatish kerakligi.

Lesson 68

Lazy Loading

Lazy loading strategiyasi: native loading="lazy", IntersectionObserver, dynamic import() bilan code splitting, V8'ning ichki lazy parsing'idan farqi, va CLS/ortiqcha lazy qilish kabi xavf-xatarlar.

Lesson 69

Memoization

Memoization texnikasi: pure funksiyalar uchun natijani keshlash, Fibonacci misolida O(2^n)dan O(n)ga tushish, JSON.stringify kalit muammosi va WeakMap yechimi, va V8'dagi CPU/xotira trade-off'lari (LRU kesh bilan).

Lesson 70

Shallow vs Deep Clone

Shallow va deep clone farqi, V8'da primitive (value) va obyekt (reference/pointer) qiymatlarning xotirada qanday saqlanishi, structuredClone() va JSON.parse/stringify usullari, qo'lda rekursiv deep clone, va hidden class nuqtai nazaridan clone xarajati.

Lesson 71

Immutability

Immutability falsafasi: reference tenglik orqali React/Redux'ning tez re-render qilishi, V8'da hidden class barqarorligi va structural sharing, Object.freeze() ning shallow ekani va deepFreeze, va Immer kabi kutubxonalarning Proxy asosida ishlashi.

Lesson 72

Module Pattern

ES Modules'dan oldin JS'da built-in modul tizimi yo'qligi, IIFE + closure orqali qo'lda private/public ajratish, Revealing Module Pattern, va bu yondashuvning dependency boshqaruvi/global namespace kabi hal qilinmagan muammolari.

Lesson 73

ES Modules (ESM)

ES Modules'ning til darajasidagi export/import sintaksisi, uning statik tabiati (top-level cheklovi), V8'dagi uch bosqichli jarayon (Parsing, Instantiation live binding bilan, Evaluation), Tree Shaking'ga nega imkon berishi, va brauzerdagi asinxron yuklash mexanikasi.

Lesson 74

CommonJS (CJS)

CommonJS'ning require/module.exports mexanizmi, Node.js'dagi Resolve-Load-Wrap-Execute-Cache besh bosqichi, module.exports vs exports chalkashligi, va CommonJS'ning qiymat-nusxa bog'lanishi ESM'ning live binding'idan nega farq qilishi.

Lesson 75

Tree Shaking

Tree shaking nima ekani: bundler statik tahlil orqali ishlatilmagan eksportlarni qanday belgilab o'chirishi (Garbage Collection'dagi reachability'ga o'xshash), side effects muammosi va package.json'dagi sideEffects flag, Webpack/Rollup/esbuild farqi, va V8'ning bunga aloqasi.

Lesson 76

Code Splitting

Code splitting strategiyasi: dynamic import() orqali bundle'ni chunk'larga bo'lish, route-based splitting (React.lazy/Suspense), bundler'ning split-point va shared-vendor optimallashtirishi, va bu strategiyaning Tree Shaking'dan farqi.

Lesson 77

Minification

Minification jarayoni: Tree Shaking'dan farqi, minifier'ning AST orqali ishlashi (mangling, constant folding, DCE), Gzip/Brotli bilan minification farqi, va V8'ning parse vaqtiga ta'siri haqiqatda qanday ekani.

Lesson 78

Design Patterns: Factory va Observer

Factory Pattern obyekt yaratish mantig'ini qanday ajratishi va JS'da first-class function tufayli nega tabiiyligi, Observer Pattern closure orqali qanday qurilishi, addEventListener aslida Observer ekani, Observer vs Pub/Sub farqi, va unsubscribe unutilsa memory leak yuzaga kelishi.

Lesson 79

Pub/Sub (Publish/Subscribe)

Pub/Sub Observer'dan qanday farqlanishi (vositachi Event Bus orqali decoupled modullar), qo'lda EventBus yozish (on/emit/off/once), emit'ning sinxron Call Stack zanjiri, queueMicrotask/setTimeout bilan asinxron qilish, va off() unutilsa memory leak.

Lesson 80

State Management Asoslari

State management'ning asosiy g'oyasi (Single Source of Truth), Module Pattern + Pub/Sub + Factory'ning createStore ichida birlashishi, setState'ning to'g'ridan-to'g'ri mutatsiyadan nega yaxshiligi (reference equality), Redux'ning reducer pattern'i, va bu yondashuvning V8'dagi GC/tezlik oqibatlari.

Lesson 81

SOLID JS'da

SOLID'ning besh qoidasi (S, O, L, I, D) JS misollarida: pure function orqali Single Responsibility, prototype polymorphism orqali Open/Closed, extends shartnomasi orqali Liskov, Object.assign composition orqali Interface Segregation, va Dependency Injection orqali Dependency Inversion.

Lesson 82

Refactoring

Refactoring texnikalarining V8'ga real ta'siri: Extract Function'ning JIT inlining orqali deyarli bepul bo'lishi, Rename'ning V8'ga umuman ta'sir qilmasligi, Parameter Object'ning hidden class tartibiga bog'liqligi, va Replace Conditional with Polymorphism'ning megamorphic deoptimization xavfi.

Lesson 83

Web Worker

Web Worker nima, u main thread'dan qanday mustaqil ishlaydi, Structured Clone Algorithm orqali ma'lumot uzatish, Transferable Objects bilan katta buferlarni nusxasiz ko'chirish va Dedicated/Shared/Service Worker turlari farqi.

Lesson 84

Service Worker

Service Worker nima, u oddiy Web Worker'dan qanday farq qiladi, install/activate lifecycle bosqichlari, "waiting" holati va skipWaiting, fetch event orqali proxy sifatida ishlashi, Cache API va Cache First / Network First / Stale-While-Revalidate strategiyalari.

Lesson 85

IndexedDB

IndexedDB nima, localStorage'dan qanday farq qiladi, Database/Object Store/Index/Transaction tushunchalari, onupgradeneeded lifecycle, transaction ACID kafolatlari, Object Store metodlari, Index va Cursor, va brauzer engine darajasida (Storage process, LevelDB/SQLite) qanday ishlashi.

Lesson 86

WebSocket

WebSocket nima, HTTP Upgrade mexanizmi orqali qanday ochilishi, ws:// va wss:// farqi, matn/binary xabar formatlari, freym tuzilishi va masking, ping/pong, close kodlari, reconnect strategiyasi va event loop darajasida qanday ishlashi.

Lesson 87

Streams API

Streams API nima, ReadableStream/WritableStream/TransformStream turlari, reader.read() orqali chunk-based o'qish, .text()/.json()/.blob() metodlarining ichki mexanizmi, TextDecoder, pipeThrough zanjiri, backpressure va pull model, hamda browser engine darajasida qanday ishlashi.

Lesson 88

Shadow DOM

Shadow DOM nima, Shadow Host/Root/Tree tushunchalari, open va closed rejimlar farqi, CSS izolyatsiyasi engine darajasida qanday ishlashi, :host va ::slotted, <slot> orqali content proyeksiyasi, composed event'lar va Web Components bilan bog'liqligi.

Lesson 89

Web Components

Web Components nima, uchta ustuni (Custom Elements, Shadow DOM, HTML Templates), lifecycle callback'lar (constructor, connectedCallback, disconnectedCallback, attributeChangedCallback), observedAttributes, <template> va named slot'lar, custom event'lar orqali composed: true, customElements API metodlari va React/Vue bilan taqqoslash.

Lesson 90

XSS

XSS (Cross-Site Scripting) nima, Stored/Reflected/DOM-based turlari, innerHTML orqali xavfli holatlar, textContent va DOMPurify orqali himoya, xavfli/xavfsiz API'lar jadvali, href orqali javascript: hujumi, Content Security Policy va nonce, HttpOnly cookie, va HTML parser darajasida bu muammo qanday paydo bo'lishi.

Lesson 91

Performance Budget

Performance budget nima, miqdoriy va vaqt asosidagi budget turlari, Core Web Vitals (LCP, INP, CLS), Long Task va Event Loop bilan bog'liqligi, Webpack/Lighthouse CI orqali avtomatik nazorat, va bundle hajmining V8 Parse/Compile bosqichlariga qanday ta'sir qilishi.

Lesson 92

DOM va Virtual DOM

DOM va Virtual DOM farqi, nega DOM'ga tegish qimmat, ro'yxatlarda key muammosi va yechimi, diffing algoritmining taxminiy tabiati, V8'dagi obyekt yaratish narxi bilan DOM reflow/repaint narxini taqqoslash, va Virtual DOM har doim tez bo'lmasligi (Svelte misoli).

Lesson 93

SSR vs CSR

SSR (Server-Side Rendering) va CSR (Client-Side Rendering) farqi, vaqt chizig'i orqali solishtirish, SEO va sekin internet uchun SSR'ning afzalligi, CSR'ning server yuki va sahifalar orasida tez o'tish afzalligi, Hydration tushunchasi va V8/brauzer darajasida DOM qurilishining farqi.

Lesson 94

Hydration

Hydration nima, SSR'dan kelgan 'o'lik' HTML'ga JS qanday ulanishi, mount() bilan farqi, Hydration mismatch xatosi va uning yechimi, vnode va real DOM'ning node-by-node solishtirilishi, addEventListener'ning V8/brauzer darajasida arzon bo'lishi, va Selective/Progressive Hydration.

Lesson 95

Frontend Architecture

Frontend arxitekturasi nima, Layer-based va Feature-based tuzilma farqi, unidirectional data flow, komponent chegaralari (coupling/cohesion), rendering strategiyasini tanlash (CSR/SSR/SSG/ISR), code splitting arxitekturasi, micro-frontends, va arxitektura qarorlarining V8/brauzer darajasida bundle parse/compile va main thread'ga ta'siri.

Lesson 96

Logging strategiyasi

Logging nima, production'da console.log yetarli bo'lmasligi, strukturaviy (JSON) logging, log darajalari (debug/info/warn/error/fatal), maxfiy ma'lumotni loglamaslik, Correlation ID orqali ko'p xizmatli tizimda izlash, markazlashtirilgan logging tizimlari, va sinxron logging'ning Node.js event loop'ga ta'siri.

Lesson 97

Monitoring tushunchasi

Monitoring nima, Logging bilan farqi, Golden Signals (Latency, Traffic, Errors, Saturation), o'rtacha (average) ko'rsatkichning aldamchiligi va p95/p99 percentile, alerting va 'alert charchashi', health check, distributed tracing, va Node.js'ga xos Event Loop Lag/GC pauzalari kabi runtime metrikalar.

Lesson 98

Import yo'llari

Relative va absolute/alias import yo'llari farqi, chuqur papka strukturasida ../../../../ muammosi, Path Alias yechimi (tsconfig/jsconfig va bundler resolve.alias), Node.js module resolution algoritmi, bundler'da build vaqtida alias hal qilinishi, va circular import xavfi.

Lesson 99

Regex

Regex (Regular Expression) nima, literal va constructor sintaksisi, oddiy belgilar, nuqta (.) va istalgan belgi, * + ? takrorlanish belgilari, [] belgilar to'plami, \d \w \s shortcut'lari, va ^ $ boshlanish/tugash belgilari.

Lesson 100

Object.freeze / Object.seal

Object.freeze va Object.seal farqi, property descriptor darajasida (writable, configurable, extensible) nima o'zgarishi, shallow freeze muammosi va deep freeze yechimi, const bilan farqi, strict mode'dagi sokin muvaffaqiyatsizlik xavfi, va konstanta/enum/state immutability uchun amaliy qo'llanilishi.