JavaScript yakuniy loyiha: vazifalar ilovasi
Bu darsda butun bo’lim bo’ylab o’rganilganlarni bitta ishlaydigan ilovada birlashtiramiz: vazifalar ro’yxati — qo’shish, bajarish, o’chirish, filtrlash va saqlash bilan.
Loyiha tuzilishi
Haqiqiy loyihada kod modullarga bo’linadi:
vazifalar/
├── index.html
└── src/
├── main.js ← ulash va ishga tushirish
├── holat.js ← ma'lumot va uning o'zgarishi
├── saqlash.js ← localStorage bilan ishlash
└── korinish.js ← DOM chizish
Asosiy tamoyil — vazifalarni ajratish: holatni boshqaruvchi kod DOM’ni bilmaydi, chizuvchi kod ma’lumotni o’zgartirmaydi.
Holat qatlami
Ma’lumot va uning o’zgarishi — sof funksiyalar bilan:
JavaScript
Har funksiya alohida sinaladi — testlash darsidagi tamoyil.
Saqlash qatlami
JavaScript
Uchta himoya: try/catch, massiv ekanini tekshirish va har elementning
tuzilmasini tekshirish. localStorage darsidagi
qoida.
To’liq ilova
JavaScript
Sahifa
Ishlab ko’ring: vazifa qo’shing, belgilang, filtrlarni bosing.
Qanday naqshlar ishlatildi
| Naqsh | Dars |
|---|---|
O’zgartirmaslik ([...massiv], { ...obyekt }) |
ES6 sintaksis |
map, filter bilan holat o’zgarishi |
Massiv metodlari |
| Bitta chizish funksiyasi | DOM yaratish |
textContent — XSS himoyasi |
Xavfsizlik |
Bitta tinglovchi, data-amal |
Hodisa delegatsiyasi |
try/catch bilan saqlash |
localStorage |
Keyingi qadamlar
Loyihani kengaytirish uchun g’oyalar:
- Tahrirlash — vazifa matnini ikki marta bosib o’zgartirish;
- Muddat — sana qo’shish va o’tganini ajratish;
- Saralash — sana yoki muhimlik bo’yicha;
- Server — fetch bilan API’ga saqlash;
- Testlar — holat funksiyalari uchun Vitest;
- Bundler — Vite bilan modullarga bo’lish.
Bo’lim yakuni
Shu bilan JavaScript bo’limi tugadi. Siz o’rgandingiz:
- Asoslar — o’zgaruvchi, tur, shart, sikl, funksiya, massiv, obyekt;
- DOM — sahifani o’qish, o’zgartirish, element yaratish, hodisalar;
- Asinxronlik — callback, Promise,
async/await,fetch; - Tuzilma — klass, meros, modul, prototip;
- Amaliyot — testlash, xavfsizlik, tezlik, kod sifati.
Amaliy mashq
- Ilovani o’z faylingizga ko’chirib, ishga tushiring;
localStorageni ulang — sahifa yangilanganda saqlanib qolsinmi?- “Hammasini tozalash” tugmasini qo’shing;
- bajarilgan vazifalarni o’chiradigan tugma yasang;
- holat funksiyalariga test yozing;
- loyihani modullarga bo’lib, Vite bilan yig’ing.
Qisqacha xulosa
- Kodni qatlamlarga ajrating: holat, saqlash, ko’rinish.
- Holatni o’zgartirmang — yangi massiv/obyekt qaytaring.
- Bitta
chiz()funksiyasi butun ko’rinishni holatdan qayta quradi. - Hodisalarni delegatsiya bilan bitta joyda ushlang.
- Foydalanuvchi matni uchun doim
textContent. - Tashqi ma’lumotni (
localStorage, API) har doim tekshirib qabul qiling.