Javascript nail Mammadov



Yüklə 1,07 Mb.
Pdf görüntüsü
səhifə6/7
tarix06.06.2020
ölçüsü1,07 Mb.
#31757
1   2   3   4   5   6   7
Javascript


 
 
 
 
 
let a = "1"; 
let  b = 0; 
 
switch (+ a) { 
  case b + 1: 
alert ("bu işləyəcəkdir. Çünkü + a 1, təxmini olaraq b + 1 -ə bərabərdir"); 
    break; 
 
  default: 
    alert ("İşləmədikdə işə düşəcək hissə"); 

 

120 
 
“Case” qruplaşdırılması 
Bir şərt bir necə case aid olduqda qruplaşdırmadan istifadə edə bilərik. 
Nümunə olaraq 3 və 5 ci case-ləri qruplaşdırmağa çalışaq: 
 
 
 
 
 
 
 
 
 
 
 
 
İndi həm 3 həm də 5 dəki kod hissəciyini göstərir. 
Qruplaşdırılması case-lərdə breakla işlətmək olmur. Bu onun mənfi 
cəhətidir. Buna görə də dayanmadan şərtləri yoxlamadan keçirəcəkdir. 
let a = 2 + 2; 
switch (a) { 
  case 4: 
    alert ( 'Doğru!'); 
    break; 
  case 3: // (*) iki case qruplaşdırıldı 
    durum 5: 
    alert ( 'Səhvdir!') ; 
    alert ("Niyə riyaziyyat öyrənəməyə başlamırsan?"); 
    break; 
  default: 
    alert ('Nəticə bilinmir.'); 

 

121 
 
Tip uyğunlaşdırılması 
Bərabərlik yoxlanılması hər zaman vacibdir. Dəyərlərin uyğunlaşdırılması 
üçün eyni tipdə olmalıdır. 
Məsələn aşağıdakı koda baxaq: 
 
 
 
 
 
 
 
 
 
 
 
 
 
1. 0, 1 üçün ilk alert işə düşür. 
let arg = prompt ("Bir dəyər yazın?"); 
switch (arg) { 
  case '0': 
  case 1': 
    alert ('Bir vəya sıfır'); 
    break; 
  case '2': 
    alert ('İki'); 
    break; 
  case 3: 
    alert (İşə düşməyəcəkdir!'); 
    break; 
  default: 
    alert ('Bilinməyən dəyər'); 

 

122 
 
2. 2 üçün ikinci alert işə düşür. 
3. Ancaq  3 yazıldıqda 3===”3” -ə barəbarə deyildir. Yəni case 3-də kod 
hissəciyi işə düşməyəcəkdir. Defaut dəyəri işə düşəcəkdir. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

123 
 
18. Funksiyalar 
Çox zaman kodun hər hansı bir hissəsində oxşar olan kod hissəcikləri 
yazmaq lazım olur. Məsələn istifadəçi hesabına daxil olduqda, çıxdıqda və 
başqa yerdə oxşar olan mesajı göstərmək lazım ola bilər. 
Funksiyalar proqramlaşdırmanın əsas hissəsidir. Kodun təkrar edilmədən bir 
necə dəfə çağırılmasına imkan verir. 
Alert(mesaj), prompt(mesaj, default) və confirm (sual) nümunələrinə baxdıq. 
Ancaq öz istədiyimizə görə də funksiyalar yaza bilərik. 
Funksiya yaradılması 
Funksiya yaratmaq üçün function ifadəsindən istifadə edirik. 
Aşağıdakı şəkildə yazılır: 
 
 
 
 
Funksiyalarda açar sözlər əvvəldə yazılır. Sonra funksiyanın adı, ondan sonra 
mörtərizə içərisinə (yuxarıdakı kimi boş olan) parametrlər yazılır və skoplar 
arasında işləyəcək kod hissəciyi qeyd olunur. 
Yeni yaradılmış funksiyamız adı ilə çağırıla bilər : gosterMesaj() . 
Nümunə: 
 
function gosterMesaji () { 
  alert ('Hamıya Salam!'); 

 

124 
 
 
 
 
 
 
gosterMesaj () çağrılması ilə kod işə düşəcəkdir. Burada mesajı iki dəfə 
görəcəyik.  
Bu nümunə funksiyaların əsas məqsədlərindən birinin izahıdır: kod 
təkrarlanmasının qarşısının alınması. 
Mesajı vəya göstərilmə şəklini dəyişdirmək lazım olarsa, kodu tək bir yerdə 
dəyişdirmək yetərlidir. 
 
 
Daxili dəyişənlər 
Funksiyanın içərisində bildirilmiş dəyişən sadəcə o funksiyanın içərisində 
görülür. 
Nümunə: 
 
 
 
 
 
function  gosterMesaj () { 
  alert ('Hamıya Salam!'); 

gosterMesaj (); 
gosterMesaj (); 
 
function gosterMesaj () { 
  let mesaj = "Salam, JavaScript-əm!"; // local dəyişən 
 
  alert mesajı ); 

gosterMesaj (); // Salam, JavaScript-əm! 
alert (mesaj ); // <- Xəta! Dəyişən localda yerləşdirilmişdir  
 

125 
 
Qlobal dəyişənlər 
Funksiya global dəyişənlərdən istifadə edə bilir: 
 
 
 
 
 
 
 
 
 
Funksiyalar global dəyişənlərə tam olaraq təsir göstərə bilir. Onları dəyişdirə 
bilirlər. Məsələn : 
 
 
 
 
 
 
 
 
 
 
 
let userName = 'Nail'; 
function gosterMesaj () { 
  let mesaj = 'Salam,' + userName; 
  alert (mesaj); 

gosterMesaj (); // Salam Nail 
 
 userName = 'Nail'; 
function gosterMesaj () { 
  userName = "Elmar"; // (1) global dəyişən dəyişdirildi 
  let mesaj = 'Salam,' + userName; 
  alert (mesaj); 

 
alert (userName); // Funksiya çağırılmamışdan əvvəl Nail idi 
gosterMesaj (); 
 
alert (userName); // Elmar, dəyər funksiya tərəfindən 
dəyişdirildi. 
 

126 
 
Global dəyişən lokalda yalnız bir dəfər istifadə edilir. 
Funksiyaların içərisində eyni adlı dəyişən olarsa, global dəyişən nəzərə 
alınmayacaqdır. Məsələn aşağıdakı kodda  funksiya lokal userName adlı 
dəyişən istifadə edir. Global dəyişəni nəzərə almıyacaqdır: 
 
 
 
 
 
 
 
 
 
 
 
Global dəyişənlər 
Yuxarıdakı kodda global istifadəci adı kimi hər hansı funksiyadan kənarda 
bildirilmiş dəyişənlərə qlobal dəyişənlər deyilir. 
Ümumi dəyişənlər hər hansı funksiyada görə bilərsiniz (lokal dəyişənlər 
tərəfindən təsir göstərilməzsə) 
Global dəyişənlərin istifadəsini ən aza endirmək yaxşı kod yazılışıdır. 
userName = 'Nail'; 
function gosterMesaj () { 
  let userName = "Elmar"; // Lokal dəyər bildirildi. 
  let mesaj = 'Salam,' + userName; // Elmar 
  alert (mesajı); 

// funksiya özünün userName-ni istifadə edəcəkdir 
gosterMesaj (); 
alert (userName); // Nail, dəyişmədi. Funksiya global dəyişəni nəzərə 
almadı. 
 

127 
 
Müasir kod strukturlarında çox az qlobal dəyişənlər var və yaxud bəzilərində 
heç yoxdur. Çox dəyişənlər funksiayaların tərkibində olur. Bəzən də 
layihədəki məlumatları saxlamaq üçün yaxşıdır. 
 
Parametrlər 
Parametrlərdən istifadə edərək funksiayalara istənilən dəyər verə bilərik 
(bunlara funksiya arqumentləri deyilir). 
Aşağıdakı nümunədə funksiyanın iki parametri var : from və text. 
 
 
 
 
 
 
 
Funksiyalarda (*) və (**) yazılan parametrlərə verilmiş dəyərlər lokal 
dəyişənlərə ötürülür. Funksiya işlədikdə isə onlar çağırılır. 
Daha bir nümunə: dəyişənimiz var və onu funksiyaya əlavə edirik. Diqqət 
edin funksiya dəyişəcəkdir. Ancaq dəyişiklik görülməyəcəkdir. Çünki hər 
zaman funksiya dəyərin nüsxəsini alır: 
 
 
 function gosterMesaj (from, text) {// argumentlər: from, metin 
  alert (from +':' + text); 

 
gosterMesaj ('Nail', 'Salam'); // Nail: Salam (*) 
gosterMesaj ('Elmar', "Necəsən?"); // Nail: Necəsən? (**) 
 

128 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Default (İlkin) dəyərlər 
Heç bir parametrin uyğun gəlmədiyi halda default dəyər işə düşür. Məsələn 
yuxarıda göstərilmiş funksiya gosterMesaj(from, text) tək arqumentlə çağırılır: 
gosterMesaj ( "Nail"); 
Bu  səhv  deyildir.  Belə  çağrılmalarda  “Nail:  undefined”  ilə  nəticələnəcəkdir. 
Text olmadığı üçün text===undefined olduğunu zənn edir. Text heç bir  
dəyər verməyərək istifadə etmək istəyiriksə, textdən sonra = yazmalıyıq: 
 
 
function gosterMesaj (from, text) { 
 
 from = '*' + from + '*'; // "from" dan daha görünməyə kömək edir. 
 
  alert (from+ ':' + text); 

 
let from = "Nail"; 
 
gosterMesaj (from," Salam "); // * Nail *: Salam 
 
// "from" dəyəri eynidir. Funksiyal lokal dəyişəni dəyişmişdir. 
alert (from); // Nail 
 
function gosterMesaj (from, text = " yazı yoxdur")  { 
  alert (from + ': "+ text); 

gosterMesaj ( "Nail"); // Nail: yazı yoxdur. 
 

129 
 
İndi əgər text  parametrinə heç bir dəyər verilməzsə “yazı yoxdur” dəyərini 
alacaqdır. Burada verilmiş nümunədə string olaraq verilmişdir. Bunun daha 
mürəkkən ifadəsi ilə qarşılaşa bilərsiniz. Yəni aşağıdakı kimi də mümkündür: 
 
 
 
 
 
 
Default parametrlərdən istifadə  
Javascriptdə funksiya hər dəfə çağırıldıqda əlaqəli olan parametr olmadıqda 
default parametr işə düşür. Yuxarıdakı nümunədə hər parametrə gosterMesaj 
()  -də  text  parametrinin  dəyəri  olmadıqda  başqa  bir  funksiya  işə  düşür. 
Default dəyər 1 ədəd olur. Python kimi dillərin əksinə olaraq. 
 
Default parametrlər köhnə formada istifadəsi 
Əvvəlki Javascript versiyalarında default dəyərlər dəstəklənmirdi. Bu səbəblə 
onları əvvəlki formada istifadə edərək dəstəklənməsinə nail ola bilərsiniz. 
Məsələn undefined olmağının yoxlanması: 
 
 
 
function gosterMesaj (from, text = anotherFunction ()) { 
  // anotherFunction () yalnız text olmaz işləyəcəkdir 
  // dəyər sonuncu yazılmış dəyərə bərabər olacaqdır 

 

130 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Geriyə dəyər ötürmə prosesi 
Funksiya nəticə olaraq geriyə bir dəyər ötürməlidir. 
Ən sadə nümunə iki dəyərin toplanmasına adi funksiya olacaqdır: 
 
 
 
 
 
 
function gosterMesaj (from, text) { 
  if (text === undefined) { 
    text = 'yazı yoxdur'; 
  } 
  alert (from+ “: “+ text); 

… Vəya || operatoru: 
function gosterMesaj (form,text) { 
  // if əgər səhv dəyər alarsa, “undefined” dəyərini alacaqdır. 
  text = text || 'yazı yoxdur'; 
  ... 

 
function cem (a, b) { 
  return a + b; 

let result = cem (1, 2); 
alert (netice); // 3 
 

131 
 
Geriyə  dəyər  ötürmə  (Return)  funksiyanın  hər  yerində  ola  bilər.  Funksiya 
bitdikdə  proses  dayanır  və  dəyər  geri  ötürülür.  (Yuxarıdakı  nümunə  kimi 
olacaqdır.) 
Tək funksiyada bir neçə geri dəyər ötürülməsi ola bilər. Nümunə: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
funksiya checkAge (yaş) { 
  if (yaş> 18) { 
    return true; 
  } else { 
    return confirm ('Ailenizden izniniz var mı?'); 
  } 

 
let age = prompt ('Neçə yaşınız var?', 18); 
 
if (checkAge (yaş)) { 
  alert ('İcazə verildi'); 
} else { 
  alert ('İcazə verilmədi'); 

 

132 
 
Return  olmadanda    dəyər  almaq  mümkündür.  Bu  funksiyanın  dərhal 
çıxmasına səbəb olacaqdır. 
Nümunə: 
 
 
 
 
 
 
 
 
 
 
Yuxarıdakı  kodda  checkAge  (yaş)  səhv  olarsa,  ShowMovie-da  alert-in 
dayandırıldığına baxın. 
Boş  dəyər geri ötürlərsə, undefined dəyərini alacaqdır: 
 
 
 
 
 
 
 
function showMovie (yaş) { 
  if (! checkAge (yaş)) { 
    return; 
  } 
 
  alert ("Film başladı"); // (*) 
  // ... 

 
function doNothing () {/ * empty * /}  
alert (doNothing () === undefined); // düzgün 
Boş göndərilmiş dəyər undefined -a bərabərdir: 
function doNothing () { 
  return; 

alert (doNothing () === undefined); // düzgün 

133 
 
Return ilə dəyər arasında heç vaxt boş sətir qoymayın. 
Uzun bir ifadə üçün aşağıdakı kimi yeni bir sətirə keçid etmək xoş görünə 
bilər: 
return 
(bunun+kimi + uzun + ifadə + vəya + hər nə+olursa+olsun * f (a) + f (b)) 
Bu  işə  yaramıyacaqdır.  Çünki  Javascriptdə  return-dən sonra  nöqtəli  vergül 
qoyulmalıdır. Bu da təbbi ki, işləməyəcəkdir. 
return; 
 (bunun+kimi + uzun + ifadə + vəya + hər nə+olursa+olsun * f (a) + f (b)) 
 
Beləcə gördüyünüz kimi boş dəyər alaraq geri döndü. Bunun düzəltmək üçün 
return ilə dəyəri eyni sətirə qoymaq lazımdır. 
 
Funksiya adlandırılması 
Funksiyalar  hərəkətdirlər.  Yəni  onların  ümumilikdə  fel  adlanır.  Mümkün 
olduğu  qədər  adlandırılma  düzgün  olmalıdır  və  nə  üçün  yazıldığını  izah 
etməlidir.  Beləliklə  kodu  oxuyan  developer  funksiyanın  nə  iş  gördüyünü 
anlayacaqdır. 

134 
 
Funksiya  adlandırılmasında  komandaların  istifadə  etdiklər  prefikslər  vardır. 
Bunlardan  istifadə etmək  komanda  daxilində  işin  asanlaşdırılmasına  səbəb 
olur. 
Məsələn “show” ilə başlıyan funksiya ümumilikdə aşağıdakı fellərin prefiksi 
ola bilər: 
• "get…" - bir dəyər ver, 
• "calc…" - bir şey hesabla, 
• "creat ..." - bir şeyler yarat
• "creat " - - bir şeyi yoxla və boolean dəyəri geri qaytar, vb. 
Adlandırmaya əlavə nümunələr: 
showMessage (..) // bir mesaj göstər 
getAge (..) // yaşı ver  
calcSum (..) //  cəm hesablayır və nəticəni geri qaytarır 
createForm (..) // form yaradır 
checkPermission (..) // icazəni yoxlayır 
Nümunələrin  düzgün  olması  funksiyanın  adına  baxdıqda  nə  işə  yaradığını 
anlamaya imkan verir. 
 
 

135 
 
Bir funksiya – bir hərəkət 
Hərəkətlər tam olaraq adındakı funksiyanı yerinə yetirməlidir. Daha çoxunu 
istifadə etməməlidir. 
İki hərəkəti yaradan funksiya olsa belə, ümumilikdə ortak funksiyalara görə 
adlandırılmalıdır. 
Bu qaydaların pozulmasına dair nümunələr : 
•  getAge  –  yaşla  bağlı  bildiriş  göstərsə(sadəcə  almalıdır),  düzgün 
olmayacaqdır. 
•  createForm  –  form  dəyişərsə,  özünə  əlavə  form  əlavə  edərsə  düzgün 
deyildir. 
•  checkPermission  –  qəbul  mesajı  görünərsə,  sadəcə rədd  mesajı  olduqda 
görünməlidir. 
Bu nümunələr ortaq mənaları olanlar idi. Siz və komandanız digər mənalarda 
üzərində çalışıb kombinasiya qurmaqda sərbətsiniz. Ama ümumilikdə çox da 
fərqlənməyəcəkdir. Hər halda prepikslərin təyini və nə məna verdiyi yalnız 
sizin  komandaya  aid  olacaqdır.  Bu  adlandırılma  bütün  komanda  üzvlərinə 
izah edilməlidir. 
Ultrashot funksiya adları 
Çox istifadə edilən funksiyalar ultrashot adlarına sahibdirlər. 

136 
 
Məsələn jQuery frameworkündə  $ ilə funksiyalar adlandırılır. Lodash 
kitabxanasında  _ ilə adlandırılır. Bunlar istisnalardır. Ümumi olaraq adlar 
qısa və mənalı olmalıdır. 
 
Funskiyalar == Şərhlər 
Funksiyalar qısa olmalı və işə yarıyan olmalıdır. Əgər funskiyanız böyükdürsə 
, onu kiçik funksiyalara bölmək sizə kömək ola bilər. Bəzən bu qaydaları 
izləmək o qədər də asan olmaya bilər. Amma inanın ki, sizin üçün 
sadələşməyə kömək edəcəkdir.  
Funksiyanı test etmək və xəta tapmaq asan deyildir. Nümunə olaraq 
aşağıdakı Primes(n) funksiyasını iki hissəyə ayrılmış funksiya ilə müqayisə 
edək.  
İlk dəyişən etiketdən istifadə edir: 
 
 
 
 
 
 
 
 
 
function showPrimes (n)  
  nextPrime: for (let i = = 2; i     for (let j = 2; j       if (i% j == 0) continue nextPrime; 
    } 
    alert (i); // prime 
  } 


137 
 
İkinci dəyişəni test etmək üçün əlavə funksiya olan isPrime (n) istifadə edilir: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
İkinci dəyişənin başa düşülməsi sadədir. Kod hissəsi yerinə funksiyanın nə 
işə yaradığını görürük (isPrime). Bəzən insanlar öz özlərini izah edən kodlara 
istinat edirlər.  
Beləliklə onları yenidən istifadə etdikdə heç bir çətinliyimiz olmayacaqdır. 
function showPrimes (n)  
  for(i = 2; i     if (! isPrime (i)) continue; 
 
    alert (i) // prime 
  } 

function isPrime (n) { 
  for (i = 2; i     if (n% i == 0) return false; 
  } 
  return true; 

 
 
 
 

138 
 
Nəticə 
Funksiyanın strukturu belə görünəcədir: 
 
 
 
 
 
• Parametrler lokal dəyişənlərinə ötürülərkən işə düşən dəyərlərdir. 
• Funksiya global dəyişənlərdən istifadə edə bilər. Ancaq sadəcə içəridən 
çölə doğru işləyəcəkdir. Funksiyanın kənarında lokal dəyişənlər 
görünməyəcəkdir. 
• Funksiyalar dəyər ötürə bilirlər. Olmazsa, undefined alır. 
Kodu təmiz və başa düşülən hala salmaq üçün funksiyada qlobal dəyişənləri 
yerinə lokal dəyişənlərdən istifadə etməyiniz məsləhətdir. 
Parametrləri olan, bunlarla işləyən və nəticəni geri qaytaran funksiya hər 
zaman sadə deyildir. Ancaq qlobal dəyişənlər əlavə təsir göstərir.  
Funksiyaların adlandırılması: 
•  Ad funksiyanın nə işə yaradığını izah etməlidir. Kodda funksiya 
çağırıldığını gördükdə nəyin baş verdiyini anlamağımıza kömək edir. 
Funksiya hərəkətdir. Bu səbəblə funksiya adları ümumilikdə fellərdən olur. 
function adı (parametr, saysız,vergüllə ayrılmış,) 

  / * kod * / 

 

139 
 
Create…, show…, get…, check… və bunlar kimi bir çox tanınmış funksiya 
adları vardır. Bu funksiyanın nə işə yaradığını göstərmək üçün istifadə edilir. 
Funksiyalar görülən işin əsas hissəsidir. İndi sadə formada başa düşdük. 
Əslində onları artıq yaradıb və istifadə edə bilərik. Amma bu sadəcə yolun 
başlanğıcıdır. Funksiyalara daha sonra yenidən qayıdacıq. Dərin 
xüsusiyyətlərinə baxacıq. 
 
 
 
 
 
 
 
 
 
 
 
 
 

140 
 
19. Expression funksiyaları və oxlar 
Javascriptdə funksiya “sehirli dil strukturu” deyildir. Sadəcə xüsusi dəyərdir. 
Daha əvvəl istifadə etdiyimiz sintaksis ilə funksiyamızı çağıraq : 
 
 
 
 
 
Funksiya sintaksisinin fərqli yazı tipi vardır. Nümunə: 
 
 
 
 
 
Burada  funksiya  digər  hər  hansı  dəyər  kimi  yaradılır  və  dəyişənə  verilir. 
Funksiyanın tipi vacib deyildir. Sadəcə salamDe dəyişəninin olduğu dəyərdir. 
Bu kod nümunələrinin ikisidə eynidir. 
Bu dəyəri bildiriş kimi çağıraq: 
 
 
 
 
 
function salamDe () { 
  alert ("Salam"); 

 
let salamDe = function () { 
  alert ("Salam "); 
}; 
 
function salamDe () { 
  alert ("Salam "); 

alert (salamDe); // funksiyada olan kod 
hissəciyi işə düşəcəkdir. 
 

141 
 
 
Son  sətrin  işləmədiyini  yadda  saxlayın,  çünki  salamDe-dən  sonra  skop 
yoxdur.  
Javascriptdə funksiyanın dəyərdir. Bu səbəblə onunla tip kimi davrana bilərik. 
Təbii ki, salamDe() kimi adlandırılan xüsusi dəyərdir. 
Ama bu hələ də bir dəyərdir. Beləliklə digər dəyərlərdə olduğu kimi onunlada 
işləyə bilərik. Funksiyanı dəyişənlə istifadə edək: 
 
 
 
 
 
 
 
 
 
 
Yuxarıdakı funksiyanı daha ətraflı izah edək: 
1. Funksiya adlandırılması ilə yaradılır və salamDe adlı dəyişənə ötürülür. 
(2) Sətirdə həmin funksiyanı func dəyişəninə ötürülür. 
2. Funksiyada salamDe() həm də func () olaraqda adlandırıla bilər. 
Həmdə ilk sətirdə salamDe-ni bildirmək üçün funksiya ifadəsi yaza bilərik : 
function salamDe () {    // (1) yarat 
  alert ("Salam"); 

let func = salamDe; // (2) dəyişəndə verilmiş halı (nüsxə) 
func (); // Salam // (3) dəyişən işlədir 
salamDe(); // Salam // normal işləyir  
 

142 
 
 
 
 
 
 
 
Bütün hamsı eyni zaman işləyəcəkdir. Prosesin necə getdiyini anlamaq üçün 
kod yazmağa başlayın. 
 
Hər sətirdən sonra niyə nöqtəli vergül var? 
Funksiya ifadəsində sonra nöqtəli vergül olmalıdır. 
 
 
 
 
 
 
 
 
Cavab çox sadədir: 
• Nöqtəli vergül if {...}, for { }, function { } kimi bloklardan sonra qoyulur. 
• Funksiya içərisində yazılan ifadədən sonra nöqtəli vergül qoyulur.  
let salamDe = function () {...}; 
 
func = salamDe; 
// ... 
 
  function salamDe () { 
  // ... 

let salamDe = function () { 
  // ... 
}; 
 

143 
 
let  salamDe  =  ...;.  Burada  nöqtəli  vergül    ifadə  ilə  əlaqəsi  yoxdur.Sadəcə 
ifadəni sonlandırır. 
 
Callback (Geri qayıtma) funksiyaları 
Funksiyalara dəyişənə aid etmə və sintaksisinə anlamaq üçün daha çox 
nümunəyə baxaq. 
Funksiyamızda 3 parametr(sual,bəli,xeyr) yazacıq: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Sual 
Sual yazısı 
Bəli 
Əgər cavab düzdürsə, işləyəcək kod hissəsi 
Xeyr 
Əgər cavab yanlışdırsa, işləyəcək kod hissəsi 
 

144 
 
Funksiyanın soruşduğu və istifadəçinin cavabına əsasən beli() vəya xeyr() 
ifadələri işləyəcəkdir: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
function  deyir (sual, bəli, xeyr) { 
  if (confirm (sual)) bəli () 
  else xeyr(); 

 
function gösterBeli ()  
  alert ("Qəbul etdiniz."); 

 
function gosterXeyr () { 
  alert ("Proses dayandı."); 

// use: function gosterBəli, gosterXeyr soruşulan arqumentlər olaraq 
bildirildi. 
deyir ("Qəbul edirsinizmi? ", gosterBəli, gosterXeyr); 
 

145 
 
Bu ifadələrin necə qısa şəkildə yaza bilməzdən əvvəl brauzerdə (bəzi hallarda 
server  tərəfində)  bu  funksiyaların  necə  istifadə  edildiyini  bilməlisiniz.  Real 
həyatda funksiyaların istifadəçi ilə əlaqə qurması sadə təsdiq etmədən daha 
qarışıq  metodların  istifadə  edilməsi  üçündür.  Brauzerdə  belə  bir  funksiya 
ümumilikdə  gözəl  görünüşlü  pəncərə  yaradır.  Bunun  haqqında  digər 
bölmələrdə ətraflı danışacıq. 
Deyir funksiyasının arqumentlərinə callback funksiyaları vəya sadəcə callback 
deyilir. 
Callbackların  belə  anlıya  bilərik  ki,  isitfadəçi  suala  əgər  “bəli”  vəya  “xeyr” 
cavabını verərsə, geri qayıdaraq nəticəni ekranda göstərməsidir. 
Eyni funksiyanı daha qısa yazmaq üçün Function Expression-dan istifadə edə 
bilərsiniz:  
 
 
 
 
 
 
 
 
 
 
function deyir (sual, beli, xeyr) { 
  if (confirm (sual)) beli () 
  else xeyr (); 

deyir( 
  "Qəbul edirsinizmi?", 
  function () {alert ("Qəbul etdiniz."); }, 
  function () {alert ("Prosesi dayandırdınız."); } 
); 
 

146 
 
Funksiyada  (deyir(...))  sualın  sağında  yazılmış  parametrlər  callbacklardır. 
Onların  adı  yoxdur  və  bilinməyən  kimi  adlandırılır.  Bu  dəyərlər    deyirdən 
başqa heç nə təsir göstərə bilməz. Tamda istədiyimiz buradadır. 
Belə formada kodlaşdırma çox normaldır.Çünki Javascriptin əsas prinsipi elə 
budur. 
Bir funksiya bir prosesi aparan vasitədir. 
Burada yazılar vəya rəqəmlər kimi normal dəyərlər məlumatı təmsil edir. 
Bir funksiya bir prosesin baş verəcəyini bildirir. 
Dəyişənləri istədiyimiz zaman dəyişə bilərik və yaxud boşda göndərə bilərik. 
 
Yüklə 1,07 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin