Funksiyalar(Functions)
Ko'pincha skriptda bir xil amalni ko'p joylarda bajarishimiz kerak bo'ladi. Masalan, tashrifchi tizimga kirsa yoki chiqsa va ehtimol boshqa joylarda yaxshi ko'rinadigan xabar ko'rsatishimiz kerak.
Funksiyalar
Ko'pincha skriptda bir xil amalni ko'p joylarda bajarishimiz kerak bo'ladi. Masalan, tashrifchi tizimga kirsa yoki chiqsa va ehtimol boshqa joylarda yaxshi ko'rinadigan xabar ko'rsatishimiz kerak.
Funksiyalar – dasturiy kodning asosiy "qurilish bloklari". Ular kodni ko'paytirishsiz ko'p marta chaqirishga imkon beradi.
Biz allaqachon o'zimizni yaratilgan funksiyalar bilan tanishdik, masalan, alert(xabar)
, prompt(xabar, default)
va confirm(savol)
. Ammo o'zimiz ham funksiyalar yaratishimiz mumkin.
Funksiya Deklaratsiyasi
Funksiya yaratish uchun funksiyaning deklaratsiyasidan foydalanishimiz mumkin.
Deklaratsiya quyidagicha ko'rinishga ega:
function
kalit so'zi birinchi bo'ladi, keyin funksiyaning nomi, so'ngra qavs ichida parametrlar ro'yxati (bo'sh bo'lishi mumkin, yuqoridagi misolda bo'sh), va nihoyat, funksiyaning kod qismini, ya'ni "funksiya tanasi", qavslar ichida yozamiz.
Funksiyaning nomi va parametrlar:
Yangi funksiyamizni nomi bilan chaqirishimiz mumkin: showMessage()
.
Masalan:
showMessage()
chaqiruvi funksiyaning kodini bajaradi. Bu yerda xabar ikki marta ko'rsatiladi.
Bu misol funksiyalarning asosiy maqsadlaridan birini aniq ko'rsatadi: kodni takrorlanishdan saqlash.
Agar xabarni yoki qanday ko'rsatilishini o'zgartirishimiz kerak bo'lsa, faqat bitta joyda, ya'ni xabarni ko'rsatuvchi funksiyada o'zgartirish kifoya.
Mahalliy O'zgaruvchilar
Funksiya ichida e'lon qilingan o'zgaruvchi faqat shu funksiyaning ichida ko'rinadi.
Masalan:
Tashqi O'zgaruvchilar
Funksiya tashqi o'zgaruvchilarga ham kirish mumkin. Masalan:
Funksiya tashqi o'zgaruvchiga to'liq kirish huquqiga ega. Uni o'zgartirish mumkin.
Masalan:
Agar funksiyada xuddi shu nomdagi mahalliy o'zgaruvchi e'lon qilingan bo'lsa, tashqi o'zgaruvchi so'ralmaydi. Misolda, funksiya mahalliy userName
o'zgaruvchisidan foydalanadi. Tashqi o'zgaruvchi e'tiborsiz qoldiriladi:
Global O'zgaruvchilar
Har qanday funksiyadan tashqarida e'lon qilingan o'zgaruvchilar, masalan yuqoridagi tashqi userName
, global o'zgaruvchilar deb ataladi.
Global o'zgaruvchilar har qanday funksiyadan ko'rinadi (mahalliy o'zgaruvchilar bilan bo'lganda).
Global o'zgaruvchilardan foydalanishni kamaytirish yaxshi amaliyot. Zamonaviy kodlarda kam yoki hech bo'lmagan global o'zgaruvchilar mavjud. Ko'pgina o'zgaruvchilar o'z funksiyalarida bo'ladi. Ba'zida, ular loyiha darajasidagi ma'lumotlarni saqlash uchun foydali bo'lishi mumkin.
Parametrlar
Funksiyalarga parametrlar orqali har qanday ma'lumotlarni uzatishimiz mumkin.
Quyidagi misolda funksiya ikkita parametrga ega: from
va text
.
Funksiya chaqirilganida, berilgan qiymatlar lokal from
va text
o'zgaruvchilariga nusxalanadi. Keyin funksiya ulardan foydalanadi.
Yana bir misol: bizda from
o'zgaruvchisi bor va uni funksiyaga uzatamiz. Iltimos, funksiya from
ni o'zgartiradi, lekin bu tashqarida ko'rinmaydi, chunki funksiya har doim qiymat nusxasini oladi:
Funksiyaga qiymat uzatilganda, bu qiymat ham argument deb ataladi.
Boshqa so'z bilan aytganda, bu atamalarni to'g'ri qo'llaymiz:
- Parametr – funksiyaning deklaratsiyasida qavs ichida ro'yxatga olingan o'zgaruvchi (bu deklaratsiya vaqtidagi atama).
- Argument – funksiya chaqirilganda uzatiladigan qiymat (bu chaqirish vaqtidagi atama).
Funksiyalarni parametrlar bilan e'lon qilamiz, keyin ularni argumentlar bilan chaqiramiz.
Yuqoridagi misolda shunday deyilishi mumkin: "showMessage funksiyasi ikkita parametr bilan e'lon qilindi, so'ngra ikkita argument bilan chaqirildi: from
va "Salom"".
Standart Qiymatlar
Agar funksiya chaqirilsa, lekin argument taqdim etilmasa, tegishli qiymat undefined
bo'ladi.
Masalan, yuqorida ko'rsatilgan showMessage(from, text)
funksiyasini faqat bir argument bilan chaqirish mumkin:
Bu xato emas. Bunday chaqiruvi "Ann: undefined" ni chiqaradi. text
uchun qiymat taqdim etilmagan, shuning uchun u undefined
bo'ladi.
Funksiya deklaratsiyasida parametr uchun "standart" qiymatni belgilashimiz mumkin, agar qiymat uzatilmasa:
Endi text
parametri uzatilmasa, "matn berilmagan" qiymatini oladi.
Agar parametr mavjud bo'lsa, lekin qat'iy undefined
qiymatiga teng bo'lsa, standart qiymat ham ishlaydi:
Bu yerda "matn berilmagan" qator bo'lib, murakkab ifoda bo'lishi mumkin, bu faqat parametr mavjud bo'lmaganda baholanadi va tayinlanadi. Shunday qilib, bu ham mumkin:
Standart Parametrlarning Baholanishi
JavaScriptda standart parametr har saf
ar funksiya chaqirilganda baholanadi. Funksiya chaqirilganda standart qiymat hisoblanadi:
Endi text
uchun standart qiymat bo'ladi.
Agar standart qiymatni hisoblash zarur bo'lsa, hisoblangan qiymat funksiya chaqirilganda baholanadi. Quyidagi misolda, parametr qiymati standart qiymat bo'lmaydi, lekin text
qiymati qayta hisoblanadi:
showMessage("Ann")
chaqirilganda, getText()
funksiyasi ishga tushadi va foydalanuvchidan matn so'raydi.