Show tasks
JavaScript dasturlash tili
Kirish bobi
JavaScript-ga kirish
Qo'llanmalar va xususiyatlar
Kod muharrirlari
Dasturchi konsoli
JavaScript asoslari
Hello, world! ("Salom, Dunyo!")
alert(ogohlantirishni) ko'rsating
Tashqi skript bilan ogohlantirishni ko'rsatish
Kod tuzilishi
Zamonaviy rejim, "use strict"
O'zgaruvchilar
O'zgaruvchilar blan ishlash
To'g'ri nomlash
Tepa registr const?
Ma'lumotlar turlari
Matn tirnoqlari
Foydalanuvchi bilan muloqot: alert, prompt, confirm
Oddiy sahifa
Turlarni o'zgartirish
Asosiy operatorlar, matematika
Postfiks va prefiks shakllari
Ifodaning natijasi
Konvertatsiya turi
Qo'shishni tuzating
Taqqoslashlar
Taqqoslashlar
Shartli operatorlar: if, '?'
agar (nolga teng matn bo'lsa)
JavaScript-ning nomi
Belgini ko'rsating
'If' ni '?' ga qayta yozing
'If..else' ni '?' ga qayta yozing
Mantiqiy operatorlar
YOKI ning natijasi nma?
YOKI(||) ogohlantirishlarining natijasi nima?
VA(&&) ning natijasi qanday?
VA (&&) ogohlantirishlarining natijasi nima?
OR VA YOKI natijasi
Oralig'ini tekshiring
Qiymatdan tashqari qiymatni tekshirish
"If" haqida savol
Kirishni tekshiring
Nullab birlashtirish operatori '??'
Tsikllar: while va for
Oxirgi tsiklning qiymati
While tsikli qaysi qiymatlarni ko'rsatadi?
"For" tsikli qaysi qiymatlarni ko'rsatiladi?
Tsikldan juft sonlarni chiqaring
"For" ni "while" bilan almashtiring
Kiritish to'g'ri bo'lguncha takrorlang
Tub sonlarni chiqaring
"switch" ifodasi
"Switch" ni "if" ga qayta yozing
"If" ni "switch" ga qayta yozing
Funksiyalar
"Else" kerakmi?
'?' yoki '||' Yordamida funktsiyani qayta yozing.
Funktsiya min(a, b)
Funktsiya pow(x,n)
Funksiya ifodalari
Arrow funksiyalar, asoslar
Arrow funktsiyalari bilan qayta yozing
JavaScript maxsus xususiyatlari
Kod sifati
Chrome da koddagi nosozliklarni tuzatish
Kodlash uslubi
Yomon uslub
Izohlar
Ninja kodi
Mocha bilan avtomatlashtirilgan test
Testda nima xatolik bor?
Polyfilllar va transpailerlar
Ob'ektlar: asoslar
Obyektlar
Salom, ob'ekt
Bo'shliqni tekshiring
Konstanta ob'ektlar?
Ob'ektning yig'indisi
Barcha sonli xususiyatlarni 2 ga ko'paytiradi
Obyekt havolalari va nusxalash
Axlat yig'ish
Obyekt usullari, "this"
Obyektda "this" dan foydalanish
Kalkulyator yarating
Zanjirlash
Obyektlarni ibtidoiylarga aylantirish
Konstruktor, operator "new"
Ikki funktsiya - bitta obyekt
Kalkulyator ni yarating
Accumulator ni yaratish
Ixtiyoriy zanjir '?.'
Belgilar turi
Ma'lumot turlari
Ibtidoiylardagi usullar
String xususiyatini qo'shsam bo'ladimi?
Raqamlar
Foydalanuvchi kiritgan raqamlarning yig'indisi
Nima uchun 6.35.toFixed(1) == 6.3?
Kirish raqam bo'lguncha takrorlang
Tasodifan cheksiz tsikl yaratish
Min dan max gacha bo'lgan tasodifiy son
Min dan max gacha bo'lgan tasodifiy tamsayi son
Satrlar
Birinchi belgi katta harf bilan
Spam borligini tekshiring
Matnni kesib oling
Pulni chiqarib oling
Massivlar
Massiv ko'chiriladimi?
Massiv operatsiyalari.
Massiv kontekstida chaqirish
Kiritilgan raqamlarning yig'indisi
Maksimal submassiv
Massiv usullari
border-left-width ni borderLeftWidth ga o'zgartiring
Filtr oralig'i
Filtr oralig'i "joyida"
Teskari tartibda saralash
Massivni nusxalash va saralash
Kengaytiriladigan kalkulyatorni yarating
Ismlar xaritasi
Obyektlarga xarita
Foydalanuvchilarni yoshiga qarab saralash
Massivni aralashtirish
O'rtacha yoshni oling
Noyob qator a'zolarini filtrlang
Massivdan kalitli obyekt yaratish
Tsiklda ko’rib chiqish imokniyatiga ega ma’lumot turlari
Map va Set
Noyob massiv a'zolarini filtrlang
Anagrammalarni filtrlang
Ketma-ket sarraluvchan kalitlar
WeakMap va WeakSet
"O'qilmagan" belgilarni saqlash
O'qilgan sanalarni saqlang
Object.keys, values, entries
Xususiyatlarni qo'shish
Xususiyatlarni hisoblash
Destrukturalashtirish
Destrukturalashtirish
Maksimal maosh
Sana va vaqt
Sana yarating
Ish kunini ko'rsating
Yevropaning ish kuni
Ko'p kunlar oldin oyning qaysi kuni bo'lgan?
Oyning oxirgi kuni?
Bugun necha soniya o'tdi?
Ertagachan necha soniya qoldi?
Nisbiy sanani formatlash
JSON usullari, toJSON
Obyektni JSON-ga va orqaga qaytaring
Qayta havolalarni chiqarib tashlash
Funktsiyalar bilan ilg'or ishlash
Rekursiya va stek
Berilgan raqamgacha barcha raqamlarni yig'ing
Faktorialni hisoblang
Fibonachchi raqamlari
Bir-biriga bog'langan ro'yxatni chiqaring
Bir-biriga bog'langan ro'yxatni teskari tartibda chiqaring
Qoldiq parametrlari va kengaytirish operatori
O'zgaruvchi doirasi, yopilish (closure)
Funktsiya oxirgi o'zgarishlarni qabul qiladimi?
Qaysi o'zgaruvchilar mavjud?
Hisoblagichlar mustaqil emasmi?
Hisoblagich obyekti
If ning ichidagi funktsiya
Qisqa tutashuvlar bilan yig'indisi
O'zgaruvchi ko'rinadimi?
Funktsiya orqali filtrlash
Maydonlar bo'yicha saralash
Funktsiyalar armiyasi
Eski "var"
Global objekt
Funktsiya obyekti, NFE
Hisoblagichni o'rnating va kamaytiring
Ixtiyoriy miqdordagi qavs bilan yig'ish
"new Function" sintaksisi
Rejalashtirish: setTimeout va setInterval
Har soniyada natija chiqaring
setTimeout nimani namoyish etadi?
Dekorativlar va ekspeditorlik, call/apply
Dekorativ ayg'oqchi
Dekorativni kechiktirish
Debounce dekorativ
Tormozlash (throtting) dekorativ
Funktsiyani bog'lash
Funktsiyani usul sifatida bog'lang
Ikkinchi bog'lash
Bind-dan keyin funktsiya xususiyati
this yo'qotishni so'rang
Kirish uchun qisman dastur
O'q funktsiyalarni takrorlayamiz
Obyekt xususiyatlarini sozlash
Xususiyat bayroqlari va tavsiflovchilar
getters va setters xususiyatlar
Prototiplar, meros
Prototip meros
Prototip bilan ishlash
Qidiruv algoritmi
Qayerda yoziladi?
Nima uchun ikkita hamster to'la?
F.prototype
"Prototip" ni o'zgartirish
Xuddi shu konstruktor bilan obyekt yarating
Mahalliy prototiplar
Funktsiyalarga "f.defer(ms)" usulini qo'shing
Funktsiyalarga bezatuvchi `defer()` qo'shing
Prototip usullari, objects without **proto**
ToStringni lug'atga qo'shing
Chaqiruvlar o'rtasidagi farq
Barcha xususiyatlarni olish
Klasslar
Klass: asosiy sintaksis
Sinfga qayta yozish
Klass meros olish (Class inheritance)
Namuna yaratishda xato
Kengaytirilgan soat
Statik xususiyatlar va usullar
Klass Obyektni kengaytiradimi?
Xususiy va himoyalangan xususiyatlar va usullar
O'rnatilgan klasslarni kengaytirish
Klasslarni tekshirish: "instanceof"
G'alati instanceof
Miksin
Xatolarni qayta ishlash
Xatolarni qayta ishlash, "try..catch"
Finally yoki faqat kodmi?
Maxsus xatolar, Error kengaytmasi
Promislar, async/await
Kirish: callbacklar
Promise
Promizni qayta hal qilasizmi?
Promiz bilan kechiktirish
Va'da qilingan animatsion doira
Va'dalar zanjiri
Va'da: then va catch
Va'dalar bilan ishlashda xato
SetTimeout-da xato
Promise API
Xatolarga bardoshli Promise.all
Xatolarga bardoshli fetch JSON bilan
Promisifikatsiya
Mikrovazifalar va hodisalar tsikli
Async/await
Async/await yordamida qayta yozing
Qayta yozing "rethrow" async/await
Async-ga mos kelmaydigandan chaqiring
Generatorlar, rivojlangan iteratsiya
Generatorlar
Psevdo-tasodifiy generator
Asinxron iteratsiya va generatorlar
Modullar
Modullar, tanishtirish
Eksport va Import
Dinamik import
Boshqalar
Proxy va Reflect
Error on reading non-existent property
array[-1] ga murojaat
Kuzatiluvchilar
Eval: kod satrini ishga tushirish
Eval kalkulyator
Currying
Reference Type (Havola turi)
Sintaksisni tekshirish
"This" ning qiymatini tushuntiring
BigInt
Unicode, Satr ichki tuzilishi
WeakRef and FinalizationRegistry
Bauzer: Hujjatlar, Voqealar, Interfeyslar
Hujjat
Brauzer muhiti, xususiyatlari
DOM daraxti
DOM bo'ylab yurish
DOM bolalari
Sibling (yonma yon dom elementlari) savoli
Barcha diagonal katakchalarni tanlang
Qidirish: getElement*, querySelector*
Elementlarni qidirish
Tugun xususiyatlari: tur, teg va tarkib
Avlodlarni sanash
NodeType ichida nima bor?
Izohda belgilang
Ierarxiyada "document" qayerda?
Atributlar va xususiyatlar
Attributni olish
Make external links orange
Hujjatni o'zgartirish
createTextNode va innerHTML va textContent
Elementni tozalang
Nima uchun "aaa" qoladi?
Roʻyxat yarating
Ob'ektdan daraxt yarating
Daraxtda avlodlarni ko'rsating
Taqvim yarating
SetInterval bilan rangli soat
Ro'yxatga HTMLni kiriting
Jadvalni tartiblang
Uslublar va sinflar
Bildirishnoma yarating
Element o'lchami va skrolling
Pastki varaq nima?
O'tkazish paneli kengligi qancha?
To'pni maydon markaziga qo'ying
Farqi: CSS kengligi va clientWidth
Oyna o'lchamlari va skrolling
Koordinatalar
Maydonning oyna koordinatalarini toping
Element yaqinidagi eslatmani ko'rsatish
Element yaqinidagi eslatmani ko'rsatish (mutlaq)
Eslatmani ichida joylashtirish (absolute)
Voqealarga kirish
Brauzer hodisalariga kirish
Bosish orqali yashirish
O'zini yashirish
Qaysi ishlovchilar ishlaydi?
To'pni maydon bo'ylab harakatlantiring
Qo'zg'aluvchi menyu yarating
Yopish tugmachasini qo'shing
Bubbling va Capturing
Hodisa delegatsiyasi
Delegatsiya bilan xabarlarni yashirish
Daraxt menyusi
Saralanadigan jadval
Tooltip xatti-harakati
Brauzerni standart harakatlari
Nima uchun "return false" ishlamaydi?
Elementdagi havolalarni ushlang
Rasmlar galereyasi
Maxsus eventlarni jo'natish
FI (Foydalanuvchi Interfeysi) voqealari
Sichqoncha hodisalari
Tanlanadigan ro'yxat
Sichqoncha harakati: mouseover/out, mouseenter/leave
Yaxshilangan asboblar maslahati harakati
"Aqlli" tooltip
Sichqoncha hodisalari bilan Drag'n'Drop
Slayder
Superqahramonlarni maydon bo'ylab harakatlantiring
Pointer hodisalari
Klaviatura: keydown va keyup
Kengaytirilgan tezkor tugmalar
Scrolling
Endless page
Up/down button
Load visible images
Formalar, boshqaruv elementlari
Forma xossalari va metodlari
Tanlash uchun variant qo'shing
Fokus: focus/blur
Tahrirlanadigan div
Bosish orqali TD ni tahrirlang
Klaviaturada boshqariladigan sichqoncha
Hodisalar: change, input, cut, copy, paste
Depozit kalkulyatori
Formalar: submit hodisasi va metodi
Modal forma
Hujjat va manbalarni yuklash
HTML sahifa hodisalari: DOMContentLoaded, load, beforeunload, unload
Skriptlar: async, defer
Resurslarni yuklash: onload va onerror
Callback bilan rasmlarni yuklash
Boshqalari
Mutation observer
Tanlash va Range
Event loop: microtasks va macrotasks
Qo'shimcha maqolalar
Ramkalar va oynalar
Popuplar va window usullari
Cross-window aloqa
Clickjacking hujumi
Binary ma'lumotlar, fayllar
ArrayBuffer, binary arraylar
Yozilgan massivlarni birlashtiring
TextDecoder va TextEncoder
Blob
File va FileReader
Tarmoq so'rovlari
Fetch
Foydalanuvchilarni GITHUBdan olish
FormData
Fetch: Yuklash jarayonini kuzatish
Fetch: To'xtatish
Fetch: Cross-Origin So'rovlari
Nima uchun bizga Origin kerak?
Fetch API
URL obyektlari
XMLHttpRequest
Qayta boshlanuvchi fayl yuklash
Long Polling (Uzoq so'rov)
WebSocket
Server Sent Events (Server tomonidan yuborilgan event'lar)
Ma'lumotlarni brauzerda saqlash
Cookies, document.cookie
LocalStorage, sessionStorage
Shakl maydonini avtomatik saqlash
IndexedDB
Animatsiya
Bezier egri chizig'i
CSS animatsiyalari
Animate a plane (CSS)
Uchar samolyotni animatsiya qilish (CSS)
Animatsion doira
Qayta chaqiruv bilan animatsion doira
JavaScript animatsiyalari
Saqlayotgan to'pni jonlantiring
To'pning o'ngga sakrashini jonlantiring
Web komponentlar
Orbital balandlikdan
Custom elementlar
Jonli taymer elementi
Shadow DOM
Template elementi
Shadow DOM slotlar, kompozitsiya
Shadow DOM uslublash
Shadow DOM va hodisalar
Muntazam ifodalar
Naqshlar va bayroqlar
Belgilar sinflari
Unicode: "u" bayrog'i va \p{...} sinfi
Langarlar: satr boshi ^ va oxiri $
Regexp ^$
Langarlarning ko'p qatorli rejimi ^ $, "m" bayrog'i
So'z chegarasi: \b
Vaqtni toping
Ekranlash, maxsus belgilar
To'plamlar va diapazonlar [...]
Java[^script]
Vaqtni ss:mm yoki ss-mm sifatida toping
Miqdorchilar +, *, ? va {n}
"..." ellipsini qanday topish mumkin?
HTML ranglari uchun Regexp
Ochko'z va dangasa miqdorchilar
/d+? d+?/ patterniga to'g'ri keladimi
HTML izohlarni topish
HTML teglarni topish
Ushlash guruhlari
MAC-manzilni tekshiring
#abc yoki #abcdef formatida rangni toping
Barcha raqamlarni toping
Ifodani tahlil qilish
Naqshdagi orqa havolalar: \N va \k<name>
Alternatsiya (OR) |
Dasturlash tillarini topish
BB-teg juftlarini topish
Qo'shtirnoq ichidagi satrlarni topish
To'liq tegni toping
Oldinga va orqaga qarash
Manfiy bo'lmagan butun sonlarni toping
Boshdan keyin kiriting
Halokatli orqaga qaytish (Catastrophic backtracking)
Yopishqoq bayroq "y", pozitsiyada qidirish
RegExp va String usullari