JavaScript Boshqaruv Oqimi (Control Flow)
Boshqaruv Oqimi — bu dasturdagi bayonotlarning bajarilish tartibidir. Odatiy holatda, JavaScript kodni yuqoridan pastga va chapdan o'ngga qarab ketma-ket bajaradi.
Boshqaruv oqimi bayonotlari esa ushbu tartibni shartlar, tsikllar yoki maxsus kalit so'zlar yordamida o'zgartirishga imkon beradi.
Odatiy Oqim (Default Flow)
Odatiy oqim kodni ketma-ket (sequentially) bajaradi:
Misol
let x = 5;
let y = 6;
let z = x + y;
// Bajarilish tartibi: x -> y -> zShartli Boshqaruv Oqimi (Conditional Control Flow)
Shartlar sizga ma'lum bir holatga qarab qaror qabul qilishda yordam beradi:
- if
- if...else
- switch
- ternar operator (? 😃
Misol
let text = "Noma'lum";
if (age >= 18) {
text = "Katta yoshli";
} else {
text = "Voyaga yetmagan";
}Tsikllar (Takrorlanuvchi Oqim)
Tsikllar bitta kodni bir necha marta takrorlash uchun mo'ljallangan:
- for
- while
- do...while
Misol
Shart (i < 5) yolg'on bo'lguncha oqimni takrorlash:
for (let i = 0; i < 5; i++) {
text += "Raqam: " + i + "<br>";
}O'tish Bayonotlari (Jump Statements)
O'tish bayonotlari oqimni kutilmaganda o'zgartiradi:
- break — tsikl yoki switchdan chiqib ketadi.
- continue — joriy iteratsiyani tashlab o'tadi.
- return — funksiyadan chiqadi va qiymat qaytaradi.
- throw — xatolikni yuzaga keltiradi va xatoni boshqarish qismiga o'tadi.
Misol
Tsikl sanog'i 3 ga yetganda uni to'xtatish (break):
for (let i = 0; i < 10; i++) {
if (i === 3) { break; }
text += "Raqam: " + i + "<br>";
}Funksiya Oqimi (Function Flow)
Funksiyalar — bu chaqirilishi mumkin bo'lgan va qayta ishlatiladigan kod bloklaridir. Funksiyalar ichidagi kod faqat ular chaqirilgandagina ishga tushadi.
JavaScript Bir Tarmoqli (Single-Threaded)
JavaScript bitta tarmoqda (single thread) ishlaydi. Ya'ni, u bir vaqtning o'zida faqat bitta ishni bajara oladi.
Har bir vazifa avvalgi vazifa tugashini kutishi kerak. Bu esa ba'zi sekin amallar (masalan, fayl so'rovlari) paytida dasturning "qotib qolishiga" olib kelishi mumkin.
Eslatma
JavaScript shuningdek kodni asinxron (asynchronously) tarzda ham ishga tushira oladi. Bu mavzu JS Advanced (Kengaytirilgan JS) bo'limida batafsil yoritilgan.
