KompyuterlarDasturlash

JavaScript: vazifada funktsiya. JS dasturlash tili

Veb-resurslardagi dinamik tarkibni shakllantirish g'oyalari normaga aylandi. Statik sahifalar va shablon sayt dizayni nihoyat o'z missiyasini yakunladi.

Biroq, zamonaviy veb-resurslar server tomonidan ishlab chiqarilgan va brauzer tomonidan yangilangan (JS + AJAX) sahifalar majmuasi bilan ifodalanishi shart emas.

Mehmonning kelishi vaqtida veb-resurs protokol uchun ikkita to'plam, "bosh" ichidagi matn, "tanadagi" bir nechta kodlar va hamma narsalar bo'lishi mumkin. Qolganlarning tashrif buyuruvchining ishi jarayonida " tushunish mumkin " - bu ideal sayt yoki bitta bo'lishga intilish.

Ta'rif joyi va vazifalarning mohiyati

опыт, наработаный многими десятилетиями. JavaScript-ni o'nlab yillar davomida to'plangan tajriba. Uning rivojlangan tarixi, ijodkor-ishlab chiquvchilarning zamonaviy malakali jamoasi bor. Til yaxshi o'ylangan, ishonchli, chiroyli va ishlab chiquvchilar uchun yaxshi kod yozish va o'zlarini rivojlantirish uchun haqiqiy imkoniyatni beradi.

Funktsiyadan tashqaridagi algoritm kontseptsiyasi asosda yo'q. Albatta, ishlab chiquvchi sahifadagi biron-bir joyda skriptni qo'shishi mumkin, kodni joyiga qo'ying va u amalga oshiriladi. страницы? Lekin kodni faqat bir marta bajaradigan nuqta nima: sahifani yuklashda (qayta yuklayotganda) ? Hech qanday ahamiyatga ega bo'lmagan o'zgaruvchining dastlabki qiymatlarini aniqlash imkoni bo'lmasa.

Skript - o'zi uchun yozilgan kodning yaxshi bo'lagiga emas, balki o'zgaruvchan va funktsiyalarni tavsiflovchi joy. Bu muhim va ahamiyatli vazifalar majmui, ehtimol ularning o'zaro to'g'ridan-to'g'ri aloqasi, lekin ko'pincha bu boshqacha. Funktsiyaning tavsifi va uni qo'llash joyi bir xil emas.

Funktsiya bevosita boshqa funktsiyani to'g'ridan-to'g'ri chaqirishi juda zarur emas, bu dinamik kod ishlab chiqarish yo'li bilan bilvosita amalga oshirilishi mumkin. Mehmon ushbu kodeks doirasida qaror qabul qiladi va butunlay boshqa funktsional tizim ishlaydi.

Funktsional dinamikasi

Funktsional dinamiklar nafaqat sahifa elementlariga tayinlangan ishchilar, balki ular sahifaning elementlarini tashkil qiluvchi vazifalar va to'g'ridan-to'g'ri ishlovchilar ham o'zgarishi mumkin.

Sahifadagi xatti-harakatlar uning elementlariga va unga tashrif buyuruvchining xatti-harakatiga qarab ochiladi. Sichqoncha harakati, klaviatura tugmalari, sekin urish, elementlar voqealari va boshqa holatlar zarur funktsiyalarni ishga tushirishga olib keladi.

Dastlab, izchillik yo'q va parallel emas. Hodisalarga veb-resurslarning etarli reaktsiyasi mavjud. JavaScript-ning ushbu funktsiyasini qanchalik tez bajarishi, ko'plab texnikaviy (kompyuter, aloqa liniyalari) va semantik (algoritmning mantiqi, mavzu maydoni, muammoning ma'nosi) omillariga bog'liq.

Aslida, bir narsa parallel ishlagan va nimadir bir narsadan keyin o'tishi mumkin, ammo bu erda hech qanday nuqta yo'q deb ta'kidlash mumkin. JavaScript funksiyasi tashrifchining harakatlariga etarli javob yaratish qobiliyatidir.

Rivojlanishda ushbu yangi fikrlash: yagona brauzer ichidagi axborotni tarqatish!

Argumentlar va funksiyalarning sintaksisi

JavaScript parametrlari ham "skript" yorlig'i va funktsiya tanasida joylashtiriladi. Funktsiyalar xuddi shu tarzda aniqlanadi. Funktsiyani yozish uchun alohida ma'no yo'q, ammo bu turli va asosli sabablarga ko'ra kerak bo'lishi mumkin.

Funktsiya tavsifi odatda "funktsiya" kalit so'zidan boshlanadi, keyin uning nomi, parantez ichidagi argumentlar ro'yxati, vergul bilan ajratilgan va jingalak kataklarda funktsional tuzilma.

Ushbu misol, AJAX almashinuvini sahifalar va server o'rtasidagi ikkita funksiyani ta'riflaydi. ScXHR o'zgaruvchilari yuqorida tavsiflanadi, shuning uchun ham InitXML va WaitReplySC ichida mavjud.

Funktsiya nomi va funktsiyasi parametri

Funktsiyada JavaScript funktsiyasi server javobidan keyin chaqirilganda, bu mos kelmaydigan variant mavjud. Bunday holda, serverdan javob olgan WaitReplySC, sahifa yorlig'ini ochadi, qabul qilingan ma'lumotni to'ldiradi va keyingi so'rovni serverga tetiklashi mumkin bo'lgan boshqa vazifalarni chaqiradi.

Bu erda ham WaitReplySC funktsiyasi ekanligini ta'kidlash kerak. scXHR.onreadystatechange = WaitReplySC она передается как параметр. Biroq scXHR.onreadystatechange = WaitReplySC liniyasida parametr sifatida qabul qilinadi. Bu vazifalarni parametr sifatida boshqa funktsiyalarga o'tkazish uchun umumiy qoidadir. Qavslar ko'rsatib, parametrlarni (parametrlarni) ularga topshirdi - funksiya darhol bajariladi. Men faqat nomni bergan edim, nega? Funktsiya chaqiruvi uning nomini olgan shaxs tomonidan amalga oshiriladi.

AJAX orqali amalga oshirilgan funktsiya serverdan olingan ma'lumotlar orqali JavaScript funksiyasini chaqirishga imkon beradi . Haqiqatan ham, serverga so'rov yuborish orqali ushbu funktsiya qaysi funktsiyaga kirish va qanday ma'lumot bilan "bilish" mumkin emas.

Funktsiyadan va uning natijasidan chiqing

Funktsiyani tanasida siz har qanday til operatorlarini yozishingiz mumkin, bu aslida buning uchun mo'ljallangan. Funktsiyaning ichkarisida va tashqarida tasvirlangan o'zgaruvchilar mavjud, ammo boshqa funktsiyalarda tasvirlanganlar emas.

Agar siz funktsiyani natijani qaytarishni istasangiz, JavaScript operatsion operatorini qaytarishingiz mumkin: qaytaring. Funktsiya tanasida yetarli miqdorda qaytariladigan so'zlar bo'lishi mumkin. Ularning hammasi bir xil turdagi natijalarni qaytarish kerak emas.

Odatda, ishlab chiquvchilar bu imkoniyatni juda hurmat qilishadi va vaziyatga qarab funktsiyani imkon qadar tezroq qoldirish to'g'risida qaror qabul qilishadi.

Funktsiyaning barcha algoritmini ishlatishingiz kerak emas.

Funktsiya argumentlari

Funktsiyadagi argumentlar vergul bilan ajratilgan ro'yxatga kiritiladi, parantezda va nomidan keyin. Argumentlar argument sifatida ishlatiladi, lekin qiymatlar to'g'ridan-to'g'ri uzatilishi mumkin. JavaScript-ni funktsiyaga topshirish uchun siz uning nomini braxetisiz ko'rsatishingiz kerak.

Uzunlik xususiyatiga ega funktsiya ichida o'zgarmaydigan argumentlar mavjud . Argumentlar [0], argumentlar [1], ... va oxirgi argumentlarga [argument.length-1] qadar har qanday funksiya argumentiga kirishingiz mumkin.

Funktsiya argumentini o'zgartirish funksiyaning ichida, lekin tashqarida emas. Funksiyadan tashqarida biror narsani o'zgartirish uchun siz JavaScript-ni qaytaruvchi operatoridan foydalanishingiz kerak, bu orqali kerakli qiymatdan tashqariga o'tish kerak.

Funktsiya tugagandan so'ng, uning bajarilishi bilan bog'liq bo'lgan barcha narsalar yo'q qilinadi. Ish vaqti davomida funktsiya ichki funktsiyalarda, jumladan, boshqa funktsiyalarda tasvirlanganlardan tashqari, tashqi o'zgaruvchilarni o'zgartirishi mumkin.

Argumentlar hozirda bajarilayotgan funktsiyani chaqirishga mo'ljallangan xarakterli xususiyatga ega. Agar siz o'zingiz qo'ng'iroq qilsangiz, bu funktsiyadagi JavaScript funktsiyasi variantini siz o'zingizning rekursioningizni amalga oshirishingizga imkon beradi.

Vazifalardan foydalanish

Funksiyalarning asosiy tashvishlari brauzer voqealariga xizmat qilishdir. Buni amalga oshirish uchun, deyarli har bir tegda, voqea nomini va uni qayta ishlash funksiyasini ko'rsatish mumkin. Siz bir necha tadbirlarni ko'rsatishingiz mumkin, lekin har bir voqea uchun faqat bitta funktsiya ko'rsatiladi.

Bir vazifa bir nechta sahifa elementlari va bir nechta hodisalarga xizmat qilishi mumkin. "Bu" parametri bilan siz uni chaqirgan joydan funktsiyani olishingiz mumkin.

JS funktsiyalarining klassik ishlatilishi elementlarga xodisani ishlovchilardir. Ushbu misolda scfWecomeGo () yoki scfWelcomeCancel () funktsiyasi mehmon kirish / chiqish shaklida chaqiriladi va scfMenuItemClick (bu) tanlansa.

Keyingi holatda, "bu" parametri qabul qilinadi, bu sizning chaqiruvingiz qaysi divaydan paydo bo'lganini mo''jizaviy tarzda aniqlab olish imkonini beradi. Umuman olganda JavaScript-ni DOMga juda yaxshi joylashtiriladi va uning elementlari orqali juda qulay harakat qilish, kerakli ma'lumotlarni to'plash, sahifaning dinamikasini oddiygina oldindan aytish qiyin bo'lishi mumkin.

Funktsiya bir qator belgilar, raqam yoki boshqa funktsiyani qaytarib berishga hojat yo'q. To'liq HTML elementini qaytarishi mumkin va u erda o'z kerakli ma'lumotlar bilan ishlash elementlari bilan kerakli elementlar soni bo'ladi.

Ushbu elementni sahifaga joylashtirish orqali ishlab chiquvchi yangi funksiyalarni yaratadi, bu muammoni hal etish va tashrif buyuruvchilarning manfaatlarini qondirish uchun yaxshi bo'ladi, ammo amalga oshirish uchun bu juda qiyin.

To'liq xususiyatli rivojlanishni boshlaganingizda, ushbu kodning tarkibiy qismi yoki tarkibining tarkibiy qismlari shakllanadigan paytlarda o'z kodingizda, funktsiya chaqiruvlarida chalkashish oson. Rivojlanishning bunday yo'nalishini olishdan oldin, hamma narsani yaxshi o'lchash uchun hech narsa yaramaydi.

Tarqalgan fikrlash haqida

Ishlab chiquvchilar sahifadagi barcha elementlar darajasida, barcha hodisalar darajasida o'ylashlari va narsalarning haqiqatan ham qanday ekanligi haqida aniq tasavvurga ega bo'lishlari kerak. Bu murakkab, lekin bu ish bunga loyiq.

JavaScript-da, funktsiya bir hodisaga kechiktirilishi mumkin va bu kabi ko'plab funktsiyalar bo'lishi mumkin va voqealar turli ishlovchilarning "ko'lamini" tarqatish va tarqatish xususiyatiga ega.

Ushbu misolda avval biron-bir joyda, fayl navigatsiya menyusi elementini yaratishni boshlagan funksiya chaqirildi. Agar xotira tashkiloti qabul qilinsa, ya'ni, o'chirilishi va qayta ishlanishi mumkin bo'lgan oynada faqat etti fayl bor. Faylning satrini va klaviaturadagi strelkalarni va yetti qatorli bloklarni bosish orqali ikkalasini ham ko'chira olasiz.

Har holda, funktsiyalar mavjud. Boshqacha qilib aytganda, bunday oddiy misolda siz turli hodisalarga javob beradigan bir necha funktsiyalarni yozishingiz kerak bo'ladi va ba'zi funktsiyalar turli hodisalarga taalluqli bo'lmagan turli xil variantlarni va vaziyatlarni boshqaradi.

Misol uchun, agar siz chiziqni o'chirsangiz, pastki qatorlar yuqoriga ko'tarilishi kerak. Buni amalga oshirish uchun siz yoki resurslardagi ahamiyatsiz va katta hajmdagi yangi tanlovni amalga oshirishingiz yoki satrlarni qayta hisoblashingiz, javascript qator funktsiyalaridan foydalanishingiz va noyob maqsadga erishishingiz kerak bo'ladi.

Argumentlar va funksiya natijalari

JavaScript kodni "to'liq xususiyatli" holatga olib kelish imkonini beradi. Odatda, funktsiya argumenti funksiya bo'lsa. Funktsiya funktsiyani qaytarsa imkoniyatni tanlash mumkin. JavaScript bu juda xotirjam qiladi.

Bu yaxshi mexanizm, lekin amalga oshirish uchun juda murakkab. Texnik jihatdan hamma narsa joizdir, semantik ravishda faqat "malakali" ishlab chiquvchi tomonidan "funktsional" uzatish uchun mantiqni ta'minlaydi.

JavaScript funktsiyasi funktsiyasida - qaerga bormasin, lekin funktsiya funktsiyani ishlab chiqadigan bo'lsa va yana bir narsa bo'lsa, unda mantiqni kuzatib borish juda qiyin. Aslida, savol malakani tatbiq qilish emasmi, savol ishonchli va to'g'ri natija olishdir.

Xizmatni ishlab chiquvchi aniq va sodda. Biror vazifa bor, sizda "JavaScript-ni noto'g'ri operatsiya xavfli", toza ekran yoki butun brauzer dvigateligini to'xtatish kabi xato emas.

Argument argument bo'lsa, u holda ishlab chiquvchi o'zga o'zgaruvchini maxsus funktsiyalar bilan o'tkazadi, ya'ni bu raqam emas, balki bir qator emas, balki ob'ekt emas. Biroq bunday argumentlardan foydalanish tashqi o'zgaruvchanlarning o'zgarishiga olib keladi va bu funktsiyaning bajarilishi natijasi bo'ladi. O'tkazilgan narsalarga bog'liq holda etarli o'zgarishlar bo'ladi.

Yaratilgan kodni bajarish

Boshqa kodning ishlashi natijasida hosil qilingan kodning bajarilishini amalga oshiring, "eval" dan foydalanishingiz mumkin. Bu juda yaxshi yechim deb hisoblanmaydi, lekin ko'pincha keraksiz funktsiyalar bilan kodni murakkablashtirmaslik, balki o'zingizni JavaScript kodi magistralining oddiy avlodiga cheklash va uni oddiygina bajarish mumkin.

Ushbu misolda, ba'zi ma'lumotlarning amaldagi divlariga kiritilgan qator qo'shiladi. Diva raqami va axborot mazmuni har xil pozitsiyalar uchun farq qiladi, chunki bunday vaziyatda bunday qaror "javascript xatosi operatsiyaning xavfli emasligini" ta'minlash uchun kafolatlanmagan, ammo ishonchli tarzda kerakli ta'sirni beradi.

JavaScript javascriptining "noaniqligi" funksiyasi "

Agar ortiqcha narsa qilish imkoni bo'lmasa, uni ishlatish yaxshidir. Barcha ro'yxatdagi variantlar yaxshi. Albatta, ko'p hollarda bu yagona yechim.

Retservisning klassik namunasi: faktoring hisoblash. Bu erda qiyinlashtirilgan algoritmni yozish qiyin, ammo ma'no chegarasidan chiqib ketish juda oson. Faktoring juda tez o'sadi.

Shu bilan birga, har ikkala recursion va o'rtacha vazifani bajaradigan boshqa funktsiyani chaqiradigan funksiya narsalarning normasi hisoblanadi.

Masalan, muntazam jadval. Jadvalda boshqa jadvallar ham bo'lishi mumkin. Nesting cheklangan emas. Har bir jadval uchun o'z funktsiyalar to'plami juda katta hashamatni yozish uchun.

Bu kabi ko'plab misollar bor va bularning hammasi dasturiy ta'minot sohasidan emas, balki haqiqiy va dolzarb vazifalar bo'ladi. Aynan shuning uchun muammoning sababi shundaki, siz ortiqcha ishlamayapsiz, yaratilgan funktsiyalar tizimi, aniqroq disk raskadrovka va keyinchalik ishonchli ish JavaScript-ni emas, balki ishlab chiqaruvchining tashvishi bo'ladi.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 uz.birmiss.com. Theme powered by WordPress.