Javascript nail Mammadov



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


Nəticə 
• Artırma / azaltma nəticə istifadə edilməyəcəksə, formun seçimində fərq 
yoxdur: 
let counter = 0; 
counter ++; 

67 
 
 ++ counter; 
alert (counter); // 2, yuxarıdakı nümunə ilə eyni oldu. 
• Dəyəri artımaq və nəticəni istifadə etmək istəyiriksə, post form -a 
ehtiyacımız vardır: 
let counter = 0; 
alert (++ counter); // 1 
•  Dəyəri  artırıb  və  nəticəni  istifadə  etmək  istəmiriksə,  prefix  form-  a 
ehtiyacımız var: 
let counter = 0; 
alert (counter ++); // 0 
Digər operatorlar arasında artış/azalış 
++ / -- operatorları ifadələrin içərisində də istifadə etmək olar. Digər 
operatorlardan əvvəl yerinə yeririlir. 
Nümunə: 
let counter = 1; 
alert (2 * ++ counter); // 4 
Müqayisə edək: 
let  counter = 1; 

68 
 
alert (2 * counter ++); // 2, çünkü counter ++ əvvəlki dəyəri qaytaracaqdır 
Yəni alert 1 göstərəcəkdir. 
“Tək sətir – tək əməliyyat” yazı tərzi: 
let counter = 1 ; 
alert (2 * counter); 
counter ++; 
Aralıq operatorları 
Aralıq operatorları arqumentləri 32 bitlik say sistemi olaraq qəbul edir və 
ikili say sistemində işləyir. 
Bu operatorlar  yalnız Javascriptə aid deyildir. Çox proqramlaşdırma dilləri 
dəstləkləyir. 
Operatarların siyahısı:  
•VƏ ( & ) 
• VƏYA (|) 
• XOR (^) 
• DEYİL (~) 
• SOL SİMVOL (<<) 
• SAĞ SİMVOL (>>) 

69 
 
• SIFIRDAN SAĞ SİMVOL (>>>) 
Bu operatorlar çox nadir hallarda istifadə edilir. Onları başa düşmək üçün 
aşağı say sisteminə keçid etmək lazımdır və indi halda bunu etmək lazım 
deyil. Çünki bunlara ehtiyacımız olmaycaqdır.  
 
Yerindəcə dəyişdirmə 
Ümumilikdə dəyişən üzərində operatordan istifadə etdikdə yeni dəyəri eyni 
dəyişəndə saxlamaq lazımdır. 
Məsələn: 
let n = 2; 
n = n + 5; 
n = n * 2; 
Bunun qısa yolu += və *= operatorlarından istifadə edərək yazmaqdır: 
let n = 2; 
n + = 5; // indi n = 7 (n = n + 5 ilə eynidir) 
n * = 2; // şimdi n = 14 (n = n * 2 ilə eynidir) 
alert (n); // 14 
Bütün operatorların və aralıq operatorların qısa yazılış forması var: / =, - =, və 
s. 

70 
 
Bu operatorlar normal bərabərlik kimi üstünlüyə malikdir. Bu səbəblə digər 
operatorlardan sonra işləyirlər: 
let n = 2; 
n * = 3 + 5; 
alert (n); // 16 (əvvəl sağ hissə hesablandı, n * = 8 ilə eynidir) 
 
Vergül 
Vergül  operatoru  maraqlı  operatorlardan  biridir.  Qısa  kod  yazmaq  üçün  
istifadə edilir. Hər ifadədən sonra vergüldən istifadə edilir. Ancaq sonuncu 
ifadə üçün istifadə edilmir. 
Məsələn: 
let  a = (1 + 2, 3 + 4); 
alert (a); // 7 (3 + 4-ün nəticəsidir) 
Burda ilk ifadə 1+2 hesablanır və nəticə atılır. Daha sonra 3+4 hesablanır və 
nəticə olaraq göstərir. 
Vergül ən aşağı üstünlüyə malikdir 
Vergül operatoru = operatorunda belə aşağı üstünlüyə malikdir. Bu səbəblə 
yuxarıdakı nümunədə mörtərizənin olması vacibdir. 

71 
 
Bunlar olmadan : a= 1+2, 3+4 əvvəl + operatoru hesablandı. a=3, 7 oldu. 
Sonra  isə  a=3  nəticəsini  götürəcəkdir  və  sonrasına  diqqət  etmiyəcəkdir. 
(a=1+2),3+4 kimi  
Əgər sonuncunu nəzərə almıyacaqdısa niyə ehtiyacımız var buna? 
Bəzən developerlər bir necə əməliyyatı bir sətirdə etmək üçün qarışıq struktur 
hazırlayar. 
Nümunə: 
 
 
 
 
Bu cür texnikanı bir çox Javascript frameworkun-də istifadə edilir. Bu səbəblə 
bunun izahını verdim. 
 
 
 
 
 
 
// bir sətirdə 3 əməliyyat 
 (a = 1, b = 3, c = a * b; a <10; a ++) { 
 ... 

 

72 
 
12. 
Müqayisə operatorları 
Riyaziyyatda bir çox müqayisə operatoru bilirik: 
• Böyük / kiçik : a> b, a • Böyük / kiçik və ya bərabərdir: a>= b,  
a<= b. 
•  Bərabərlik:  a  ==  b  (diqqət  çüt  bərabərlikdir.  Tək  bir  a  =  b  simvolu  bir 
dəyişəni başqa dəyişənə bərabər etmə). 
• Bərabər deyil. Riyaziyyatda ≠- bu cür yazılır. Ancaq Javascriptdə fərqli olaraq 
nida vardır: a! = B. 
Boolean nəticəsi 
Digər bütün operatorlar kimi müqayisədə də dəyər verir. Bu halda da dəyər 
booleandır. 
• true - “bəli”, “düzgün” və ya “real” mənasını verir.  
• false - “xeyr”, “yanlış” veya “real olmayan” mənasını verir. 
Məsələn: 
 
 
 
 
alert (2> 1); // true (düzgün) 
alert (2 == 1); // yanlış (yanlış) 
alert (2! = 1); // true (düzgün) 
 

73 
 
Müqayisənin nəticəsi hər hansı dəyişənə verilə bilər: 
 
 
 
 
String müqayisəsi 
Bir  stringin  digər  stringdən  böyük  olub  olmadığını  yoxlamaq  üçün 
Javascriptdə “yazı” vəya “leksik” müqayisə edilir.  
Başqa sözlə desək stringlər hərf hərf ilə müqayisə edilir. 
Müqayisə: 
 
 
 
İki stringin müqayisə alqoritması sadədir: 
1. Hər iki stringin ilk simvolunu müqayisə edir. 
2. İlk stringdən gələn simvol digər stringdən  daha böyüksə (və ya daha az), 
ilk string ikincidən böyükdür (və ya daha az). Yoxlanılmışdır. 
3.  Əks  təqdirdə  hər  iki  stringin  də  ilk  simvolu  eynidirsə,  ikinci  simvol  eyni 
şəkildə müqayisə edilir.  
let netice = 5> 4; // müqayisənin 
nəticəsi 
alert (netice); // düzgün 
 
alert ('Z'> 'A'); // düzgün 
alert ('Glow'> 'Glee'); // düzgün 
alert ('Arı'> 'Ol'); // düzgün 
 

74 
 
4. Hər hansı stringin sonuna qədər davam edir.  
5. Hər hansı string də eyni uzunluğa sahibdirsə , o zaman bərabərdir. Əks 
təqdirdə , daha böyük string böyükdür. 
Yuxarıdakı nümunlərdə ,'Z'> 'A'  
Qarşılaşdırılması  ilk  addımda  nəticə  verərkən,  "Glow"  ve  "Glee"    dəki 
simvolları qarşılaşdırılacaq: 
1. G, G ilə eynidir. 
2. l, l ilə eynidir. 
3. o, e'dən böyükdür. Burada isə ilk string daha böyükdür. 
Bu qarşılaşdırma hərfə görə deyil Unicode-a görə edilir. 
Məsələn: Böyük hərflə “A”, kiçik hərf “a” ilə eyni deyildir. Hansı daha böyükdür 
bəs?  Kiçik  hər  “a”  böyükdür.  Səbəb?  Çünki  kiçik  hərfli  simvol  Javascriptin 
istifadə  etidiyi  daxili  şifrələmə  cədvəlində  daha  böyük  index-sə  sahibdir 
(Unidecode).  Bunun  String  bölməsindəki  spesifik  əlamətlərinə  və 
qiymətlərinə geri qayıdacıq. 
Fərqli tiplərin müqayisəsi 
Fərqli tiplərin dəyərlərinin müqayisəsi zamanı Javascript dəyərləri ədədlərə 
çevrilir. 
Məsələn: 
 
alert ('2'> 1); // true, '2' stringi 2 ədədinə çevriləcəkdir. 
alert ('01' == 1); // true, '01' stringi 1 ədədinə çevriləcəkdir. 
 

75 
 
 
 
Boolean dəyərlər üçün true 1 və false 0 olur. 
Məsələn: 
 
 
 
Qəribə nəticələr 
Eyni zamanda mümkündür: 
• İki dəyər bərabərdir. 
• Biri bir boolean olarak, diğeri ise bir boolean dəyər deyildir. 
Məsələn: 
 
 
 
 
 
 
alert (true == 1); // düzgün 
alert (false == 0); // düzgün 
 
a = 0; 
alert (Boolean (a)); // səhv 
 
b = "0"; 
alert (Boolean (b)); // düzgün 
 
alert (a == b); // düzgün 
 

76 
 
JavaScriptə  görə  bu  nəticə  olduqca  normaldır.  Bərabərlik  operatoru  ədəd 
olaraq çevirib yoxlayır. (bu səbəblə “0”  0 olur) 
 
Qatı bərabərlik 
Normal bərabərlik yoxlamasında səhvlik vardır. 0-i səhvdən ayıra bilmir. 
alert (0== false); //düzgün 
Eyni nəticə boş stringlədə olur : 
alert (“ ” == false); // düzgün 
Bunun  səbəbi  fərqli  tipdəki  dəyişənləri  ==  operatoru  ədədə  (number)-ə 
çevirməsidir. Boş string və 0 yanlış dəyəri kimi olacaqdır. 
0 – ı yanlışdan ayırmaq üçün nə etməliyik? 
Qatı bərabərlik operatoru ===, tipi çevirmədən bərabərliyi yoxlayacaqdır. 
Başqa sözlə əgər a və b fərqli tiplərdədisə, o zaman a===b bərabərliyindən 
çevirmədən false dəyərini döndərəcəkdir. 
Yoxlayaq: 
alert (0 === false); // false, çünki tiplər fərqlidir 
Eyni  zamanda  “qatı  bərabərlik”  operatoruda  vardır.  Qatı  operator  ilə  daha 
dəqiq və xətalara daha az vermək üçün istifadə edilir. 
Null və undefined müqayisəsi  

77 
 
İndi isə bu tiplərin müqayisəsinə baxaq 
Boş  və  bilinməyən  dəyərlərin  digər  dəyərlərlə  qarşılaşdırılması  zamanı 
məntiqə uymayan nəticələr ortaya çıxır. 
Qatı bərabərlik zamanı === bu dəyərlər fərqlidir, çünki hər biri fərqli tipdir. 
Qatı olmayan bərabərlik zamanı üçün == isə xüsusi qayda vardır. Bu iki tip 
bir-birinə bərabərdirlər. 
alert (null == undefined); // düzgün 
Riyazi və digər müqayisələr üçün <> <=> = 
null / undefined ədədlərə çevrilir: null 0 , undefined NaN olacaqdır. 
İndi bu qaydaları gördüyümüzdə qəribə hallara baxaq. Və daha vacibi onlara 
necə aldanmamaq lazımdır. 
Maraqlı nəticə 
Null və 0-ı müqayisə edək: 
alert (null> 0); // (1) yanlış 
alert (null == 0); // (2) yanlış 
alert (null> = 0); // (3) düzgün 
Riyazi olaraq bu çox gözlənilməzdir. Son nəticə sıfırın sıfırdan böyük vəya bərabər 
olduğunu  düzgün  qəbul  edir.  Bu  səbəblə  yuxarıdakı  müqayisəni  birinin  düzgün 
olması lazımdır. Ancaq ikisidə yanlışdır. 

78 
 
Bunun səbəbi bərabərlik operatorunun == və müqayisə operatorlarının > <> = <= 
fərqli  işləmə  üsulunun  olmasıdır.  Müqayisədə  null  dəyəri  rəqəmə  çevrilərək  0 
olacaqdır. 
 (3) null> = 0 düzgündür və (1) null> 0 yanlışdır. 
 
Həmdə  bilinməyən  və  null  üçün  bərabərlik  yoxlaması  ==  hər  hansı  çevrilmə 
olmadan  bərabər  olacaqdır  və  başqa  heç  bir  şeyə  ehtiyac  qalmayacaqdır.  Bu 
səbəblə (2) null==0 səhvdir. 
 
Bərabəri olmayan undefined 
Bilinməyən dəyər digər dəyərlərlə müqayisə edilməməlidir: 
 
alert (undefined> 0); // yanlış (1) 
alert (undefined <0); // yanlış (2) 
alert (undefined == 0); // yanlış (3) 
Niyə sıfırdan xoşu gəlmir? Hər zaman yanlış geri qaytarır. 
 
Müqayisələr (1) və (2) yanlış dəyəri geri qaytarır. Çünki undefined NaN-a çevrilir və 
NaN a bütün müqayisələr üçün false geri qaytaran xüsusi number tipidir. 
Bərabərlik yoxlamasında (3) false geri qaytarır, çünki bilinməyən dəyər sadəcə boş 
, bilinməyən və başqa dəyərlərə bərabər deyildir. 
 

79 
 
Problemlərdən yan keçmə 
Niyə bu nümunələrə baxdıq? Bu xüsusiyyətləri hər zaman yadda saxlamalıyıqmı ?  
Əslində indi çətin görünən bunlar zamanla yaddaşınıza yazılacaqdır. Ancaq onlarla 
yaranan problemlərdən yan keçməyin metodu vardır: 
Hər  hansı  müqayisəyə  undefined/  null  dəyərlərlə,  qatı  bərabərlik  ===.  İstisna 
hallardan kənarda isə == operatoru ilə yoxlayın. 
Müqayisələrlə > => <<=  nə etdiyini tam olaraq bilmirsinizsə, null/undefined olacaq 
dəyər  istifadə  etməyin.  Bu  dəyişən  bu  dəyərlərə  sahibdirsə,  bunları  ayrı  ayrı 
yoxlayın. 
 
Nəticə 
Müqayisə operatorları Boolean dəyərləri geri qaytarır. 
Stringlər – “söz” sırasında hərf hərf müqayisə edilir. 
Fərqli tiplərin dəyərləri müqayisə edildiyində, çevrilmələr olur. (Qatı bərabərlikdən 
başqa) 
Dəyərlər  əgər  null  və  undefined-ə  bərabərdirsə,    digər  heç  bir  dəyərə  bərabər 
olmayacaqdır. 
>  Vəya  <  kimi  müqayisə  istifadə  edilərkən  boş  və  ya  undefined  dəyərlər  qarşı 
diqqətli olun. Null/undefined ayrı ayrı yoxlamaq məsləhətdir. 
 
 

80 
 
13. 
Dialoq pəncərələri : alert, confirm, prompt 
Kitabın bu hissəsində real nümunələr olmadan Javascript dilində danışacıq. 
Brauzerinizdən istifadə edərək dialoqların necə qurulacağına baxmalıyıq. Bu 
bölmədə əsas brauzer funksiya bildirişləri, istək və təsdiqi haqqında 
öyrənəcik. 
Alert 
Sintaksisi 
alert (yazı); 
Bu  kod  yazı  göstərəcəkdir  və  istifadəçi  “OK”  -a  klikləyənə  kimi  bütün 
funksiyalar dayanacaqdır. 
Məsələn: 
 
 
Yazının olduğu kiçik pəncərəyə modal window deyilir.  
 
Prompt 
Bu metod iki arqument qəbul edir: 
netice = prompt (başlıq, [default]); 
alert ( "Salam"); 
 

81 
 
Modal pəncərədə istifadəçidən bir dəyər istəyər və “OK/CANCEL” -
düymələrindən birinə kliklənməsini gözləyər. 
Başlıq - 
İsitfadəçiyə göstəriləcək yazı olacaqdır.
 
Default - 
İstəyə görə ikinci parametrdir. Başlanğıç dəyər kimi qəbul edilir.
 
İsitfadəçi inputun daxilinə bir şey yazıb, “OK”-təsdiq və “Cancel”-ə vəya ESC 
– düyməsini sıxıb imtina edə bilərsiniz. 
Yazılmış nəticəni göndərir vəya yazılmayıbsa null dəyərini göndərəcəkdir. 
Məsələn: 
let yash = prompt ('Neçə yaşınız var?', 75); 
alert (`$ {yash} yaşınız var!`); // 75 yaşın var! 
 
İE-də : hər zaman default dəyər olmalıdır. 
Bu  əslində  istəyə  bağlı  parametrdir.  Ancaq  İnternet  Explorer  “undefined” 
olaraq görəcəkdir. 
Nəticəni görmək üçün İnternet Explorerdə işə salın : 
let test = prompt ("Test"); 
Bu səbəblə, İE-də həmişə default dəyəri yazmaq məsləhət görülür: 
let test = prompt ("Test", ''); // <- IE üçün 
 

82 
 
Confirm 
Sintaksisi: 
netice = confirm (sual); 
Funksiyanın təsdiqləməsi üçün istifadə edilən confirm iki düymədən ibarətdir: 
OK və Cancel 
OK  düyməsi  sıxıldıqda  ya  düzgün  olarsa,  True  dəyəri,  səhv  olarsa,  False 
dəyərini verəcəkdir.  
 
Nümunə: 
let buLiderdir = confirm (“Lider sizsiniz?”) 
alert (Mənəm); // OK basılarsa, true 
 
Nəticə 
İstifadəçilərlə brauzerdə əlaqə qurmaq üçün 3 metoda baxdıq: 
Alert - Bildiriş mesajı göstərəcəkdir. 
Prompt - İsitifadəçidən mətn tələb edən mesaj qutusudur. Ok basılarsa, mətni 
göndərir vəya Cancel vəya ESC basılarsa, null dəyərini döndərəcəkdir. 

83 
 
Confirm  -  Mesajı  göstərmək  üçün  istifadə  edilir.  İstifadəçidən  “OK”  və  ya 
“Cancel”-dən  birinin  kliklənməsini  gözləyir.  Ok-  true  dəyərini,  Cancel/ESC 
false dəyərini verəcəkdir. 
Bütün  bu  metodlar  modaldır: açılmış pəncərə  bağlanana  kimi  digər  bütün 
funksiyalardan istifadəyə qadağan qoyacaqdır. 
Yuxarıda bütün metod üçün standart vardır: 
1.Modal  pəncərəsi  brauzerdə  tərəfindən  qəbul  edilir.  Adi  halda  mərkəzdə 
olur. 
2. Pəncərənin dizaynını brauzerə uyğun olaraq təyin olunur. 
 
 
 
 
 
 
 
 
 
 
 

84 
 
14. Şərt operatorları : if, “?” 
Bəzə fərqli şərtlərə görə fərqli nəticələr almaq lazım olur. Bunu etmək üçün “sual 
işarəsi” operatoru olaraq adlandırılan if ifadəsini və şərt operatorunu istifadə edə 
bilərik. 
 “İf” ifadəsi 
İf ifadəsi şərtlər qoymaq üçün istifadə edilir və nəticə düzdürsə, bir kod hissəciyinin 
işləməsi üçün istifadə edilir. 
Məsələn: 
 
 
 
 
Yuxarıdakı nümunədə şərt sadə yoxlama nümunəsi oldu (year==2015), ancaq çox 
qarışıqda ola bilər. 
Birdən  çox  ifadə  istifadə  etmək  istəyiriksə,  kod  hissəsini  skopların  içərisinə  daxil 
etmək lazımdır: 
 
 
 
 
let il = prompt ('ECMAScript-2015 nə zaman 
buraxılmışdır?' '); 
 
if (il == 2015) alert (Düzdür!'); 
 
if (il == 2015) { 
  alert ("düzgündür!"); 
  alert ("ağıllısan!"); 

 

85 
 
İstfadə  edəcəyimiz  bir  ifadə  olsa  belə  kodlar  skopların    {}  daxilində  yazılmalıdır. 
Həmdə oxunması rahat olacaqdır. 
Boolean çevrilməsi  
İf (…) ifadəsi skop içərisindəki kodları dəyərləndirib, nəticəni boolean tipini çevirib 
göndərəcəkdir.  
Tiplər arasında əlaqə bölməsini yada salaq: 
•Dəyər 0, boş string “” , null ,undefined və NaN – false dəyəri alır.  
• Qalan dəyərlər isə true olur. 
Buna görədə düz olarsa, aşağıdakı kod heç vaxt işə düşməz: 
 
 
 
 
… Və bu  halda  həmişə true dəyəri alır: 
 
 
 
Əvvəlcədən düzgün dəyər qeyd edə bilərik. Nümunə: 
 
 
if (0) { 
// 0 false-dir. 
  ... 

 
if (1) {// 1 true 
  ... 

 
let cond = (il == 2015); // bərabər olarsa düz, əks halda səhv 
olsun. 
if (cond) { 
  ... 

 

86 
 
“Else” ifadəsi 
İf ifadəsin istəyə bağlə “else” bölməsi istifadə edilə bilər. Bu hissədə şərt əgər səhv 
olan zaman işlədiləcək kod hissəciyi yerləşdirilir. 
Nümunə: 
 
 
 
 
 
 
 
Birdən çox şərt : “else if” 
Bəzən şərt qoyarkən bir necə hal üçün yazmaq istəyə bilərik.  
Else if buna imkan verir. 
Nümunə: 
 
 
 
 
let il = prompt ('ECMAScript-2015 neçənci ildə buraxılmışdır?' '); 
 
if (il == 2015) { 
  alert ('Doğrudur!'); 
} else { 
  alert (Səhvdir'); // 2015 -dən başqa dəyər yazılarsa 

 

87 
 
 
 
 
 
 
 
 
Yuxarıdakı kodda Javascript ilk əvvəl <2015 ilini yoxlayacaqdır. Bu olmazsa, sonrakı 
şərt olan il> 2015 yoxlayacaqdır. Buda səhv olarsa, sonuncu ifadəni işə salacaqdır. 
Kod blokları çox ola bilər. Sonuncu istəyə bağlıdır. 
Şərt operatoru “?” 
Bəzən dəyişən vermək lazım olur. 
Məsələn: 
 
 
 
 
 
 
let il = prompt ('ECMAScript-2015 neçənci ildə 
buraxılmışdır?' '); 
 
if (2015 < il) { 
  alert ('Bu ildən sonra olub ...'); 
} else if (il> 2015) { 
  alert ('Bu ildən əvvəl olub'); 
} else { 
  alert ('Əlaqəsizdir!'); 

 
let girishQadagandir ; 
let yash = prompt ('Neçə yaşınız var?', ''); 
 
if (yash> 18) { 
  girishQadagandir = true; 
} else { 
  girishQadagandir = false; 

 
alert (girishQadagandir); 
 

88 
 
 
 
 
 “?” operatoru “İf” operatorunun daha qısa və sadə yazılış şəklidir. 
Operator sual işarə ilə təmsil olunur. “Tanery” olaraq adlandırılır, çünki operatorun 
3 dəyəri vardır.  
Sintaksisi: 
Let netice = şert? deyer1: deyer2; 
Şərt yoxlanılır: deyer1 düzdürsə deyer 1,əks halda isə deyer2 seçilir. 
Məsələn: 
let accessAllowed = (yaş> 18) ? true:false 
Texniki  olaraq  >  18  ifadəsi  mörtəziləri  nəzərə  almıya  bilər.  Sual  işarəsi  üstünlük 
cəhətdən aşağıdır, bu səbəblə müqayisə sonra aparılır. 
Bu nümunə əvvəlki nümunə ilə eyni nəticəni verəcəkdir: 
 
 
 
 
Ancaq mörtərizələr kodu daha yaxşı oxumağa imkan verir. İstifadəsi məsləhətdir. 
Yadda saxlayın: 
//müqayisə operatoru üstünlüyə sahibdir. “yash>18”   
// Mörtərizə içində yazmağa ehtiyac yoxdur 
girishQadagandir = yash> 18? true false; 
 

89 
 
Yuxarıdakı  nümunədə  müqayisə  işarəsi  true/false  dəyəri  verdiyindən  sual 
işarəsində istifadə etmiyə bilərsiniz. 
// eyni 
let girishQadagandir = yash> 18; 
 
Birdən çox şərt olduqda : ‘?’ 
Birdən çox şərt qoymaq üçün “?” operatorunda istifadə edə bilərsiniz. 
Nümunə: 
 
 
 
 
 
 
Anlamaqda çətinlik çəkə bilərsiniz. Ancaq daha aydın izah üçün bu hissəni diqqətli 
oxuyun: 
1.   İlk sual işarəsi yash<3  olub, olmadığını yoxlayar. 
    2. Əgər doğrudursa “Salam Dünya” nəticəsini verəcəkdir. Əks təqdirdə 18 yaşını 
yoxlayacaqdır “:”-əks halda davam etməsini bildirir. 
let yash = prompt ('yash?', 18); 
 
let cavab = (yash <3)? 'Salam Dünya!' : 
  (yash <18)? Salam!' : 
  (yash <100)? Sağol!' : 
  'Son!'; 
alert( cavab ); 
 

90 
 
   3. Bu düzdürsə, “Salam” dəyərini verəcəkdir. Əks halda <100 yaşını yoxlayacaqdır 
“:” dan sonra ifadəsi davam edəcəkdir. 
  4.  Əgər  doğru  olarsa  “Sağol”  ifadəsini  verəcəkdir.  Əks  halda  sonuncu  nəticəni 
döndürəcəkdir. 
 
? yerinə if... else istifadə etsəydik: 
 
 
 
 
 
 
 
 
 
 ‘?’-in istifadə edilmədiyi yerlər 
Bəzən sual “?” işarəsi if-in əvəzinə istifadə edilir : 
 
 
 
if (yash <3) { 
  cavab = 'Salam Dünya!'; 
} else if (yash <18) { 
  cavab = 'Salam'; 
} else if (yash <100
   
cavab = 'Sağol'; 
} else { 
  cavab = 'Son!'; 

 
let shirket = prompt ('Javascripti hansı şirkət yaratdı?', ''); 
 
(shirket == 'Netscape')? 
   alert ('Düzgün!'): alert ('Səhv.'); 
 

91 
 
 
 
Şirkətlə bağlı olaraq == “Netscape”, ? ifadəsində birinci ifadə yoxlandıqdan sonra 
ikinci ifadə yoxlanılacaqdır. Sonda isə alert işə düşəcəkdir. 
Burda  dəyişənə  dəyər  olaraq  nəticəni  vermirik.  Sadəcə  hala  uyğun  olaraq  fərqli 
kodların işləməsini istəyirik. 
Sual  işarəsini  bu  şəkildə  ifadəsi  məsləhət  deyildir.  Bu  if  ifadəsindən  qısa  olsada 
oxunarlılığı heçdə yaxşı deyildir. 
 
Müqayisə üçün sual yerinə if istifadə edək: 
 
 
 
 
 
Gözlərimizlə kodu daha rahat oxumağa imkan verir. Anlaşılan şəkildə yazılışmış bu 
kod tək sətirlik koddan daha rahatdır. 
“?”  operatorunu  nə  məqsədlə  istifadə  edirik?  Nəticəyə  uyğun  olaraq  dəyərin 
verməsi üçün istifadə edilir. 
 
let shirket = prompt ('Javascripti hansı şirkət yaratdı?', ''); 
if (shirket == 'Netscape') { 
  alert ( 'Düzgün!'); 
} else { 
  ( 'Səhv.') ; 

 

92 
 
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