📱 Variable – o‘zgaruvchi nima?
Variable – bu ma’lumot turadigan qutining nomi.
Masalan: age = 25, userName = "Ali".
JavaScriptda ikkita asosiy kalit so‘z:
let – o‘zgaradigan qiymat
const – o‘zgarmaydigan qiymat
let age = 20;
age = 25; // o'zgartirish mumkin
const pi = 3.14;
// pi = 3.15; ❌ xato bo'ladi, const o'zgarmaydi
👉 Amaliy qoida:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Function – bu qayta-qayta ishlatadigan kod bloki.
Masalan, har safar salomlashish uchun alohida console.log yozmaymiz, function yozib qo‘yamiz.
2 bosqich bo‘ladi:
Define – funksiyani qurib olish:
function greeting() {
console.log("Hello World");
}
Call – funksiyani chaqirish:
greeting();
Shu bilan bir xil kodni istalgancha marta ishlatish mumkin.
Shu sababli functionlar kodni tartibli, qayta ishlatiladigan va oson o‘qiladigan qiladi.
4️⃣ Function strukturasi – 4 xil yozilish
4.1. Regular (oddiy) function
function greeting() {
console.log("Hello from Regular");
}
greeting();
✅ Eng klassik ko‘rinish. Keyin greeting() deb chaqiramiz.
4.2. Anonymous (function expression)
const abc = function () {
console.log("Hello from Anonymous");
};
abc();function () {} – nomi yo‘q.
Uni const abc ga tenglab, keyin abc() deb chaqiryapmiz.
Ko‘pincha callbacklarda ishlatiladi (masalan: button.addEventListener('click', function () {...})).
4.3. Arrow function
const xyz = () => {
console.log("Hello from Arrow");
};
xyz();
Arrow function – expressionning zamonaviy, qisqaroq varianti.
Qisqa yozilishi ham mumkin:
const sum = (a, b) => a + b;
console.log(sum(2, 3)); // 5
Agar faqat bitta expression bo‘lsa, {} va return yozmasa ham bo‘ladi – avtomatik return bo‘ladi.
4.4. Auto-invoke (IIFE – darhol ishlaydigan function)
(function () {
console.log("Hello from Auto invoke");
})();
•Bu yozilishda:
functionni e’lon qildik
darhol () bilan chaqirdik
•Ko‘pincha kodni alohida “scope”ga kiritib qo‘yish uchun ishlatiladi (global o‘zgaruvchilarni iflos qilmaslik uchun).
5️⃣ Returning vs Void function
Returning function – qiymat qaytaradi
function calculate() {
const a = 10;
const b = 2;
return a + b;
}
const result = calculate(); // 12
console.log("result:", result);
👉 Muhim nuqta:
return yozilgan joydan keyin funksiya to‘xtaydi. Yana kod yozsang ham ishlamaydi.
Returning functionlar bilan:
natijani o‘zgaruvchiga saqlash
keyin boshqa joyda ishlatish boshqa functionga argument sifatida berish mumkin.
Void function – hech narsa qaytarmaydi
function calculateVoid() {
const a = 10;
const b = 2;
console.log("result:", a + b);
}
calculateVoid();
Bu faqat ichida ishini qilib qo‘yadi, lekin tashqariga hech narsa qaytarmaydi.
Shuning uchun:
const res = calculateVoid();
console.log(res); // undefined
❗ Agar natijani keyin ishlatmoqchi bo‘lsang – albatta return ishlatish kerak.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
a, b → parametr (function ichida e’lon qilingan nomlar)
10, 20 → argument (chaqirayotganda berilgan haqiqiy qiymatlar)
Parametr = joy nomi
Argument = joyga qo‘yiladigan real ma’lumot
Yana bir misol:
function greeting(name) {
console.log("Salom,", name);
}
greeting("Ali"); // name = "Ali"
greeting("Laylo"); // name = "Laylo"Bitta function, lekin har xil argument bilan har xil natija.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
const a = 50; // global
function calculate(b) {
return a + b;
}
const result = calculate(10);
console.log("result:", result); // 60
Bu yerda:
Tashqaridagi a = 50 – global scope.
Function ichida a yo‘q, shuning uchun JS tashqariga qaraydi va global ani oladi.
Demak, 50 + 10 = 60.
Agar ichida yana const a = 5; deb yozsak:
const a = 50;
function calculate(b) {
const a = 5; // local
return a + b;
}
console.log(calculate(10)); //
15
Endi function ichida yaqinroq bo‘lgan a ishlaydi – ya’ni 5.
Qoida: yaqin scope har doim ustun bo‘ladi.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1
Hozir ko‘rgan functionlarning hammasi synchronous:
console.log("1");
console.log("2");
console.log("3");
Natija har doim tartib bilan: 1 → 2 → 3.
Asynchronousda esa:
• serverdan ma’lumot kelishi
• fayl yuklanishi
• timer (setTimeout)
kabi ishlar parallelga o‘xshab ishlaydi va natija keyinroq keladi.
Misol:
console.log("1");
setTimeout(() => {
console.log("2");
}, 1000);
console.log("3");
Natija: 1, 3, va keyin 1 sekunddan so‘ng 2.
Bu mavzuni keyin Promise / async await bilan alohida post qilinadi.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
🔹 Functional Programming
Asosiy e’tibor: functionlarga.
map, filter, reduce bilan massivlarni qayta ishlash.class Person { ... } – toza OOP.Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Quyidagi tushunchalar Person class misolida ko‘rsatib o‘tiladi.
1. Abstraction (Abstraksiya)
Abstraksiya – faqat kerakli qismini ko‘rsatib, keraksiz tafsilotlarni yashirishdir.
name, age, introduce(), greet() orqali ifodalanadi.Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Inkapuslatsiya – ma’lumot (state) va u bilan ishlovchi funksiyalarni (method) bitta kapsula, ya’ni class ichiga joylashdir.
name, age – shu obyektga tegishli ma’lumot;introduce(), greet() – aynan shu obyekt bajarayotgan xatti-harakatlar.
Inkapuslatsiya natijasida kod tartibli bo‘ladi va har bir class o‘z ma’lumotlari uchun javobgar bo‘ladi.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🥴1
Inheritance – bitta umumiy classdan boshqa classlarning meros olib, uni kengaytirib ishlatishi jarayonidir.
Student classi Person classidan meros oladi.
Bu yerda:Student → Persondan inherit qilyapti;name, age, introduce(), greet() – Student obyektlarida ham mavjud bo‘ladi;major property qo‘shiladi.Bunday yondashuv katta loyihalarda kodni qayta-qayta yozishdan qochishga yordam beradi.
Please open Telegram to view this post
VIEW IN TELEGRAM
Polymorphism – bir xil nomdagi methodning turli classlarda turlicha ishlashidir.
person.introduce() → My name is Davidstudent.introduce() → I am student DavidMethod nomi bir xil (
introduce), lekin bajariladigan logic har xil. Bu holat polymorphismga misol bo‘ladi.Please open Telegram to view this post
VIEW IN TELEGRAM
Quyida objectlar bilan ishlash bo‘yicha qisqa konspekt keltiriladi.
1. Object literal – eng oddiy usul
const person = {
name: "David",
age: 30,
nationality: "Australian",
greet() {
console.log("Hi, How are you?");
},
introduce() {
console.log(`My name is ${this.name} and I am ${this.age} years old!`);
}
};
Bu obyekt:
Please open Telegram to view this post
VIEW IN TELEGRAM
Primitive turlar (
string, number, boolean va boshqalar) qiymat bilan ishlaydi:
const a1 = "Jack";
let x1 = a1;
x1 = "Max";
console.log("a1:", a1); // "Jack"
Bu misolda:x1ga a1ning qiymati nusxa sifatida o‘tadi;x1 o‘zgartirilsa ham, a1 o‘zgarishsiz qoladi.Objectlarda esa vaziyat boshqacha:
const person2 = { name: "Robert", age: 32 };
const person3 = person2;
person3.name = "Fred";
console.log(person2.name); // "Fred"
Bu holatda:person3 = person2 – ikkala o‘zgaruvchi ham bir xil obyekt manziliga qaraydi;person3.name o‘zgartirilishi person2ga ham ta’sir qiladi.Bu reference (manzil bilan ishlash) tushunchasini ko‘rsatadi.
Please open Telegram to view this post
VIEW IN TELEGRAM
const person4 = { ...person2 };
person4.name = "Kyler";
console.log(person2.name); // eski qiymat
console.log(person4.name); // "Kyler"
Bu yerda:
{ ...person2 } – person2obyektidan yangi obyekt yaratiladi;
person2 va person4 endi alohida obyektlar bo‘lib, biri o‘zgartirilganda ikkinchisiga ta’sir qilmaydi.Please open Telegram to view this post
VIEW IN TELEGRAM
const obj = new Object();
obj.name = "David";
obj.age = 30;
obj.hobby = "football";
console.log(`My name is ${obj.name}, I am ${obj.age}, and I love ${obj.hobby}`);
Bu ham object yaratadi, ammo amaliyotda ko‘proq literal usul ({ ... }) qo‘llaniladi, chunki u ixcham va o‘qilishi oson.Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
O‘zgaruvchi va function nomlari (JavaScript’da asosiy standart)
Class va React component nomlari
Ko‘proq backend va database ustun (column) nomlarida
Fayl nomlari, URL yo‘llari va ba’zan CSS classlar
Constant (o‘zgarmas) qiymatlar, konfiguratsiya va sozlamalar
Asosan sarlavha, bo‘lim nomlari, UI dagi matnlar (button, heading va h.k.)
Ko‘pincha UI label, tugma yozuvlari yoki qisqa, urg‘uli matnlar uchun ishlatiladi (front-end dizaynda ko‘p uchraydi)
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Proyektni admin qismi tayyor holatda endi frontendda qiladigan 1 kunlik ish qoldi nasib boʻlsa ertaga kechga video qilib bu proyektni barcha komponentlari bilan tanishtirib oʻtaman yoki dushanbaga nasib boʻlsa.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Media is too big
VIEW IN TELEGRAM
Pythonga boʻlgan qiziqishim yanada oshdi va yangi yangi loyihalarda ham ishlatish niyatidaman nasib boʻlsa.
Ps: telegram bot kerak boʻlsa aytaverasizlar degim keldiyu hali oʻrganishim kerakda 😂
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Bugungi kun kechagidan ancha barakali boʻldi alhamdulillah. Proyektlarim ham oldinga yurdi nasib boʻlsa 3 haftada bitiraman va test qilish uchun shu guruhga link joylayman. Ishlatib sinovdan oʻtkazib berasizlar. Inshaalloh.
https://t.me/bro_codeee
Please open Telegram to view this post
VIEW IN TELEGRAM
Bugun bot deyarli production-ready holatga keldi
Cart, wishlist, buyurtmalar va ballar endi to‘liq SQLite bazada saqlanadi
Bot o‘chib-yonsa ham: savatcha, wishlist, buyurtmalar tarixi va points yo‘qolmaydi
Buyurtma oqimi endi FSM bilan:
Ism → Manzil → Telefon – har biri alohida state/cancel va “Xatoliklar kamaydi, kod strukturalanganroq bo‘ldi
Profil endi shularni ko‘rsatadi:Jami buyurtmalar soni
Jami sarflangan summa
O‘rtacha chek
Oxirgi buyurtma sanasi
Ballar balansi (loyalty tizimi)
/admin + admin keyboard:Statistika, Pending buyurtmalar, Oxirgi buyurtmalar, Asosiy menyu/admin_stats:Ro‘yxatdan o‘tganlar soni
Buyurtma qilganlar soni
Pending / Completed / Cancelled taqsimoti va foizlari
Umumiy va bugungi tushum
orders_pending / orders_last:Har bir buyurtma alohida xabar + inline tugmalar:
Done, Cancel, InfoAdmin buyurtmani chat ichidan turib boshqarishi mumkin
UX polishing (sana/status formatini yagona qilish, matnlarni tozalash)
Admin / user keyboard logikasini soddalashtirish
Kichik testlar va README’ni yangilash
Asta-sekin botni real foydalanuvchilarga tayyorlab boryapman, nasib boʻlsa yana yangiliklar boʻladi.
https://t.me/bro_codeee
Please open Telegram to view this post
VIEW IN TELEGRAM