3.2 Java Scriptda obyektlarga asoslangan dasturlash
Boshlang‘ich matn bo‘lagini funksiya ko‘rinishida yozish mumkin va ularni JavaScript ssenariysining turli joylaridan murojaat qilish mumkin. Odatda funksiyalar HTML hujjatini sarlavxa bo‘limida aniqlanadi. Funksiyalar chaqirilishidan avval e‘lon qilinishi kerak va barcha funksiya e‘loni HTML hujjat sarlavxasida joylashtirilgan bo‘lishi kerak. Funksiyaning umumiy e‘loni quyida keltirilgan: function nomi(scriptter 1] […,scriptter 2] [...,scriptter N]) { . . . Funksiya matni qatorlari . . . [return qiymat] } Barcha parametrlar funksiya qiymatiga beriladi. Shuning uchun funksiya unga scriptter sifatida beriladigan o‘zgaruvchilar qiymatini o‘zgartira olmaydi. Return kalit so‘zi yordamida funksiya qiymati qaytariladi. Java Script tilida tuzilgan ko‘pchilik dasturlarda funksiyalardan foydalanamiz. Shuning uchun xozir bu tilning muhim elementi haqida gapirish juda muhim. Funksiyalar ko‘pchilik hollarda o‘zida bir necha buyruqlarni bog‘lash usulini namoyon qiladi. Keling misol uchun biror bir matnni uch marta birdaniga chop qiluvchi script yozamiz. Dastlab oddiy yo‘lni ko‘raylik: < script language= ―JavaScript‖> < ! - - hide > document.Write( ―Mening sahifamga xush kelibsiz! < br >‖); document.Write( ―Bu JavaScript! < br >‖); document.Write( ―Bu JavaScript! < br >‖); document.Write( ―Bu JavaScript! < br >‖); < /Script > < /html > Va bu script qo‘shimcha matnni bosib chiqaradi: Mening sahifamga xush kelibsiz! Bu JavaScript! Bu JavaScript! Bu JavaScript! Agar dastlabki kodiga qaraydigan bo‘lsak, kerakli natijani olish uchun kodning aniq bir qismi 3 marta takrorlangan. Axir bu samaralimi? Yo‘q biz ushbu masalani osonroq yechishimiz mumkin: < html > < script language= ―JavaScript‖> < ! - - hide function myfunction () { document. Write( ‗Mening sahifamga xush kelibsiz! < br >‖); document. Write( ‗Bu JavaScript! < br >‖); } myfunction (); myfunction (); myfunction (); < /Script > < /html > {} qavs ichida joylashgan barcha skriptlar myfunction() funksiyasiga tegishli. Bu shuni anglatadiki document.write() dan iborat 2 ta buyruqni birlashtirildi va ular funksiya chaqirilishi bilan birgalikda bajariladi. Haqiqatdan ham bizning misolimizda funksiya 3 marta chaqirilgan va buni funksiyaning o‘zi aniqlagandan so‘ng myfunction() satrini 3 marta yozganimizni ko‘rishimiz mumkin. Va o‘z navbatida bu shuni bildiradiki, funksiyaning tarkibidagi narsalar (buyruqlar, {} qavs ichidagi ko‘rsatilganlar) 3 marta bajarilgan. Bu funksiyaning ishlatilishiga yetarli darajadagi oddiy misol va sizda nima uchun funksiya JavaScript uchun shu darajada muhim degan savol tug‘iladi. Ushbu qo‘llanmani o‘qish mobaynida siz albatta funksiyaning foydasini bilib olasiz. Funksiyani chiqarishda o‘zgaruvchilarning uzatish imkoniyatining o‘zi bizning skriptlar uchun juda ixchamlik yaratadi. Funksiyalar yana xodisalarni ishlovchi protseduralar bilan birgalikda ishlatilishi mumkin. Navbatdagi misolni ko‘ramiz: < html > < script language= ―JavaScript‖> < head> function calculation( ){ var x = 12; var y = 5; var result = x+y; 146 alert (result);} //- -
Начало формы
Конец формы
Bu yerda tugmachani bosish bilan calculation() funksiyasini chiqarish jarayoni ro‘y beradi. Sezgan bo‘lsangiz, bu funksiya x, y va result o‘zgaruvchilaridan foydalanib, qo‘shish amalini bajaradi. O‘zgaruvchilarni var kalit so‘zi bilan e‘lon qilish mumkin. O‘zgaruvchilar turli kattaliklarni son, satr va xakozalarni saqlash uchun ishlatiladi. Skriptning var result = x+y satri brauzerga result o‘zgaruvchisini hosil qilish va unga x+u arifmetik amalni joylashtirishni (5+12) xabar beradi. Bundan so‘ng result o‘zgaruvchisi qiymatni oladi. Bu holda alert (result) va alert (17) buyrug‘i bir xil vazifani bajaradi. Boshqacha qilib aytganda, bu 17 son yozilgan darchaga ega bo‘lamiz. JavaScript ssenariyli tili ob‘yektga-mo‘ljallangan tildir. JavaScript ob‘yektlari xususiyatlar va usullar to‘plamini ifodalaydi. Ob‘yekt xususiyati – bu, ob‘yektga bog‘liq bo‘lgan ma‘lumotlardir, usullar esa – ob‘yekt ma‘lumotlarini qayta ishlovchi funksiyalardir. JavaScript ssenariyda xususiyatlarni manzillash ularning nomlari bilan yoki ularning raqamlari bilan amalga oshishi mumkin. Keyingi variant bo‘yicha, har bir xususiyat massivning bir elementi sifatida olinadi va ular o‘zlarining unikal raqamlariga ega bo‘ladilar. JavaScript tilida C va Java dasturlash tillaridagi kabi protsedura va funksiyalar mavjud bo‘lib, ular quyidagicha e‘lon qilinadi:
function kalit so‘zi;
funksiya nomi;
vergul va qavs bilan ajratilgan argumentlar ro‘yxati;
figurali qavs ichiga olingan funksiya tanasi. Function myFunction(arg1, arg2, ...) { ... Operatorlar ketma-ketligi ... } Bu yerda myFunction – funksiya nomi, arg1, arg2 – parametrlar. Misol: function Factorial(n) { if((n< myList.arguments.length; i=i+1) { document.write(“
”+myList.arguments[i]); } document.write(“”); } HTML hujjatida funksiyaga murojaat quyidagicha: Natija: matn 2 3 Global sinfi. Ushbu sinf JavaScriptning funksional qismi bo‘lib, bu sinf bir ob‘yektda bir nechta usul va xossalarni birlashtirish vazifasini bajaradi. Usulga murojaat qilinganda ob‘yekt ko‘rsatilmaydi, aniqrog‘i bu usul konstruktorga ega bo‘lmaydi. Bunday xossa va usullarga quyidagilarni keltirish mumkin:
eval(s) funksiyasi. eval(s) funksiyasi – JavaScript ning ichki funksiyasi hisoblanadi. Ushbu funksiya bir yoki bir nechta JavaScript operatorlaridan iborat bo‘lgan s satrni argument tomonidan uzatilgan kodni bajaradi. Bunda s satridagi operatorlar nuqtali vergul yordamida ajratiladi. Bu funksiya nafaqat operatorni bajarish, balki biror amallarni hisoblash imkonini ham beradi. Bunda u kodda keltirilgan amal hisobining oxirgi qiymatini qaytaradi. isNaN(x) funksiyasi. Bu funksiya x argumentning ―son emas‖ ligini tekshiradi. Natija NaN qiymatga ega emasligini, ya‘ni mumkin bo‘lmagan son (masalan, nolni nolga bo‘lish natijasi) ni tekshiradi. Ushbu funksiya JavaScript da literal ko‘rinishda NaN qiymatni berish mumkin emasligi uchun muhimdir. Bundan tashqari parseFloat(s) va parseInt(s) funksiyalar natijalarini tekshirish (mumkin bo‘lgan son ekanligini) va arifmetik xatolar mavjudligi, masalan, nol soniga bo‘lish mavjudligini tekshiradi. parseFloat(s) funksiyasi. s satrini sintaktik tahlil qilish va dastlab raqamni qaytarish (satrni raqamga aylantiradi). parseFloat(s) da s satrida ruxsat etilmagan raqam elementlari (masalan, belgilar, raqam, o‘nli vergullar, daraja ko‘rsatkichi va hokazo) mavjud bo‘lsa tahlil to‘xtatiladi va qiymat qaytariladi. Agarda s satr son bilan boshlanmasa, u holda parseFloat(s) funksiya NaN qiymatni qaytaradi. parseInt(s) funksiyasi. Bu funksiya satrni butun songa aylantiradi. parseInt(s) funksiyadagi s satrda hisoblash tizimida ko‘rsatilmagan qiymatlarga ega bo‘lganda sintaktik tahlil to‘xtatiladi va qiymat qaytariladi. Odatda, parseFloat va parseInt funksiyalar s satr son bilan 150 boshlanmaganda NaN qiymat qaytaradi. parseInt(s,n) holatida n asos hisoblanib, agarda n=10 bo‘lsa, parseInt(s) funksiya satrdagi 10 lik sanoq tizimidagi sonlarni tekshiradi. n=8 bo‘lsa, 8 lik sanoq tizimidagi sonlar mavjudligini (bunda n 0 dan 7 gacha bo‘lgan sonlar qiymatiga ega bo‘lishi mumkin). n=16 bo‘lsa, 16 lik sanoq tizimidagi sonlar mavjudligini (bunda 0 dan 9 gacha bo‘lgan sonlar va A dan F gacha bo‘lgan harflar qiymatiga ega bo‘linadi). Agarda n=0 bo‘lsa yoki qiymat berilmasa, u holda parseInt(s) funksiya satrning o‘zidan asosni aniqlaydi. Bu holatda agarda satr 0 bilan boshlansa, unda funksiya satrning qolgan qismini 16 lik sanoq tizimidagi son sifatida tahlil qiladi, agarda satr 0 dan boshlansa, satr 8 lik sanoq tizimidagi qiymat sifatida tahlil qilinadi.
JavaScript tilida shartga bog‘liq ravishda qaytariladigan amallardan iborat bir nechta konstruksiyalar mavjud. Bu while, do..while, foreach hamda for sikllardir. Ularni batafsil ko‘rib chiqamiz. While sikl operatori. Strukturasi: while (ifoda) { bajariladigan_blok } yoki while (ifoda): bajariladigan_blok endwhile; while – bu oddiy sikl. U ifoda qiymati True (bu yerda xuddi if operatori kabi ifoda mantiqiy turga o‘zlashtiriladi) bo‘lgunicha bajariladigan_blokdagi buyruqlarni bajarishga buyuradi. Ifoda qiymati har sikl boshlanganda tekshirib boriladi, agarda uning qiymati bajariladigan_blok bajarilish jarayonida o‘zgargan taqdirda ham iteratsiya tugamaguncha (ya‘ni bajariladigan_blokdagi barcha buyruqlar bajarilmaguncha) sikl to‘xtatilmaydi. Misol: while operatori i = 0 n = 0 while (i< 3 ) { n ++; x += n; } do... while sikl operatori. do..while sikli while siklga o‘xshaydi, ammo farqli tomoni shundaki, ifodaning rostligiga sikl boshida emas, balki oxirida tekshiriladi. Qulay tomoni shundaki, bajariladigan_blok do..while sikli ichida hech bo‘lmaganda bir marta bajariladi. Strukturasi: do { do..while sikli } while (ifoda); Misol. do..while operatori do { i+=1; document.write(i); } while (
Начало формы
Do'stlaringiz bilan baham: |