Azerbaijan Javascript Developers Groups
JAVASCRİPT Nail Mammadov 2020
2
Mündəricat 1. JavaScript-ə Giriş .................................................................... 3 2. Əlavələr və xüsusiyyətlər.........................................................9 3. Kod redaktorları......................................................................11 4. Console.log.............................................................................13 5. Salam, dünya!.........................................................................17 6. Kod strukturu.........................................................................21 7. Use strict................................................................................26 8. Dəyişənlər..............................................................................28 9. Data tipləri.............................................................................40 10. Data tiplər arasında keçidlər...................................................49 11. Operatorlar............................................................................55 12. Müqayisə operatorları...........................................................72 13. Dialoq pəncərəsi : Alert, Prompt, Confirm..............................80 14. Şərt operatorları.....................................................................84 15. Məntiq operatorları................................................................92 16. While və For..........................................................................104 17. Swithch case………………………………………………..………………………116 18. Funksiyalar………………………..…………………………………………………123 19. Ox funksiyaları……………….……………………………………………………140 20. Xülasə………………………………………………………………………………….157
3
1. JavaScript-ə Giriş Bu kitab Azərbaycan dilində ən sadə yazılmış Javascript dərsliyidir. Javascript
haqqında hər şey yəni, onların xüsusiyyəti, nələr edə biləcəyimiz və hansı
texnologiyaların istifadə edildiyinə baxacıq.
JavaScript nədir? Javascript başlanğıcda veb səhifələrin interaktiv (canlı) etmək üçün istifadə edilir.
Bu dildə fayl tipinə script (əmr) faylları deyilir. Veb səhifədə HTML içərisinə
Javascript yazıla bilər və səhifə yükləndikdə avtomatik olaraq işə düşəcəkdir. Script
faylları işə salmaq üçün xüsusi format vəya compailer-ə ehtiyac yoxdur.
Javascript Java adlanan dildən çox fərqlidir.
Niyə Javascript? Javascript ilk əvvəllər başqa adla bilinirdi: “LiveScript”. Ancaq Java o vaxtlar çox
məhşur idi. Bu səbəbdən yeni dili Javanın “kiçik qardaşı” kimi adlandırılmasına
qərar verildi. Ancaq inkişaf etdikcə Javascript Ecmascript adlı müstəqil dil oldu və
artıq Java ilə heç bir əlaqəsi yoxdur. Bu gün Javascript yalnız brauzerdə deyil
həmdə serverdə vəya əslində Javascript engine adlanan framework (karkas) olan
cihazda işləyə bilər. Brauzerdə bəzən “Javascript Virtual Machine” adlı xüsusiyyəti
vardır.
Enginlərin kod adları brauzlərə görə aşağıdakı kimidir.Məsələn:
V8 - Chrome və Operada.
SpiderMonkey - Firefoxda.
“Trident” və “Chakra”- fərqli İE versiyalarda olur.
4
“ChakraCore” - Microsoft Edge-da.
“Nitro” və “SquirrelFish” – Safarida.
Yuxarıdakı terminləri yadda saxlamaqda fayda vardır. Çünki developer və özümün
məqalələr yazdığım medium hesabımda çox istifadə edilir. Məsələn “X xüsusiyyəti
V8 tərəfindən dəstəklənir” isə ehtimal ki Chrome və Opera-dada işləyir.
Enginlər necə işləyir? Enginlər qarışıqdır. Ancaq ilkin anlayışlar asandır. Enginlər (Brauzerdə olarsa) scripti
oxuyur (“ayırır”). Sonra scripti maşın dilinə çevirir (“hazırlayır”). Və sonda maşın
dilində olan kod sürətli işləməyə başlayır. Engine prosesini hər addımında
optimizasya işləri aparılır. Ayrılmış script işləyərkən belə onu izləyir,içərsində olan
məlumatları analiz edir və məlumatlara əsaslanaraq maşın dilindəki kodu
optimizasiya edər. Bu bitdiyində javascript sənədləri çox sürətli işləyirlər.
Brauzer üçün Javascript nə edə bilər? Modern Javascript “güvənli” proqramlama dilidir.Yaddaş vəya CPU-ya görə zəif
bağlantı qurmaz çünki başlanğıcda bu parametrlərin lazım olmadığı brauzerlər
üçün nəzərdə tutulmuşdu.
Javascriptin bacarıqları ən çox olduqları mühitə görə dəyişir. Məsələn Node.js –
Javascriptin istənilən sənədləri oxumasına/yazmasına, şəbəkə istəklərinin
reallaşdırılmasına və s. proseslərə icazəni dəstəkləyir. Brauzer içərisindəki
Javascript veb səhifə manipulyasiyası,istifadəçi əlaqəsi və veb server ilə əlaqəli hər
şey edilə bilir.
5
Məsələn Javascript brauzer içərisində bunları edə bilər: Səhifəyə yeni HTML əlavə etmək, mövcud məlumatların dəyişdirilməsi, formatını
dəyişdirmək.
İstifadəçilərin apardığı əməliyyatalara reaksiyası. Mausun kliklənməsi ilə, ox
işarələri, qutuların kliklənməsi və s.
Şəbəkə ilə başqa serverlərə istək göndərilməsi, sənədlərin göndərilməsi və
yüklənməsi ( AJAX və COMET texnologiyaları).
Cookie-lərin hazırlanması ilə istifadəçilərə sualların verilməsi, mesajların
göstərilməsi və s.
Müştərinin məlumatlarının yaddaşda saxlanması ( “local storage” ).
Javascriptlə brauzerdə nələr etmək olmaz? Javascriptin brauzerdəki bacarıqları, istifadəçinin güvənlilik tərəfindən məhduddur.
Məqsəd istifadəçinin məlumatlarının alınmasının vəya oğurlanmasının qarşısının
alınmasıdır.
Bu hallara aid nümunələr: Veb səhifəsindəki JavaScript sabit diskdə özbaşına sənədləri oxumağa / yazmağa,
onları nüsxəsini çıxatmağa və ya proqramları işə sala bilməz. OS sisteminin
funksiyalarına birbaşa çıxışı yoxdur.
Müasir brauzerlərdə sənədləri oxumağa icazə verilir. Ancaq məhdud və yalnız
istifadəçi sənədi brauzer pəncərəsinə “buraxmaq” vəya teqi ilə seçərək
istifadə edə bilər.
6
Kamera/mikrofon və digər cihazlarla əlaqəni yaratmağın yolları vardır. Ancaq
bunlar üçündə istifadəçinin icazəsi lazımdır. Bu səbəblə Javascript veb səhifədə veb
kameranı gizlicə işə salıb və məlumatları göndərə bilməz.
Fərqli tablarda/ pəncərələrdə ümumiyyətlə bir-birini görmür. Bəzən bir pəncərənin
digərini açmaq üçün Javascript istifadə edildiyi zaman edilir. Ancaq bu halda belə
səhifədəki Javascript fərqli səhifələrdən gəlirsə, digərindən istifadə edə bilinmir.
Buna “Same Origin Policy” deyilir. Bunun həll yolu hər iki səhifə arasında razılıq
olmalıdır və onun üçün isə xüsusi Javascript kodu yazılmalıdır. Bunu sonrakı
mövzularda ətraflı izah ediləcəkdir.
Bu məhdudiyyətlə istifadəçinin güvənliyi üçündür. İstifadəçinin açdığı
http://hərhansı.com ünvanından olan səhifə
http://gmail.com
URL-si olan başqa
pəncərədən məlumat oğurlamağa imkan vermir.
Javascript şəbəkədən öz səhifəsinin olduğu server-ə rahatlıqla əlaqə qura bilər.
Ancaq digər səhifələrdən məlumat alma xüsusiyyəti yoxdur. Javascript brauzerdən
kənarda məsələn serverdə istifadə edilirsə, bu məhdudiyyətlər olmayacaqdır.
Müasir brauzerlər geniş icazə tələb edilməyəcək əlavələrə icazə verir.
Javascripti oxşarsız edən nədir? JavaScripti oxşarsız edən 3 səbəb vardır:
HTML / CSS ilə tam bağlıdır.
Sadə şeylər çox asanlıqla həll olunur.
Bütün brauzerlər tərəfindən dəstləklənir və hal-hazırda istifadə olunur.
7
Javascript 3-nüdə birləşdirən tək brauzer texnologiyasıdır.
Javascriptidə oxşarsız edən budur. Brauzerlər üçün ən çox istifadə edilən yol budur.
Yeni texnologiyanı öyrənməyi planlaşdırdıqda baxış bucağınıza nəzarət etməklə
daha faydalı ola bilər. Əgər bu sizdə belədirsə, müasir trendlərə keçid etmək olar.
JavaScript üzərindən dillər Javascript sintaksisi bütün ehtiyacları ödəmir. Hər bir insan üçün fərqli xüsusiyyətin
olmasını istəyər.Bu hal proyektlərin və istənilənin hər kəs üçün fərqli olması idi.
Bu səbəblə son zamanlarda Javascriptdə sintaksisində modifikasiya edərək yeni dil
ortaya çıxarır.
Müasir alətlərdə çox sürətli və avtomatik olaraq çevrilmələrin aparılmasına imkan
yaradır.
Ən çox istifadə edilənlər:
CoffeeScript – Javascript üçün “sugar sintaksis” dir.Daha qısa və dəqiq kod
yazmağımıza icazə verən sintaksis imkanını verir.Ümumilikdə developerlər bunu
Ruby-də də bəyənirlər.
TypeScript – qarışıq sistemlərin yazılması və hazırlanmasını rahatlaşdırmaq üçün
yəni, “strict” məlumatların əlavə etməyə imkan verir.Mikrosfot üçün
hazırlanmışdır.
Flow - başqa data tipləri yazmağa imkan verir. Facebook tərəfindən hazırlanmışdır.
Dart - brauzerdən kənarda (mobil proqramlarda) işləyə bilən öz engininə sahib olan
ancaq eyni zamanda Javascriptdə müstəqil dildir. Google tərəfindən hazırlanmışdır.
Daha çox var. Təbii ki bunlardan əvvəl Javascripti bilməliyik.
8
Nəticə Javascript başlanğıcda yalnız brauzer dili olaraq yaradıldı. Ancaq indi bir çox başqa
məqsədlər üçün istifadə edilir.İndiki vaxtda Javascript HTML/CSS ilə tam bağlı olan
ən məhşur brauzer dilidir.Javascriptdə “transpiled” və müəyyən xüsusiyyəti verən
bir çox dil var. Javascripti anladıqdan sonra ən azında qısa şəkildə onlara baxmağınız
məsləhətdir.
9
2. Əlavələr və xüsusiyyətlər Bu kitabı 0-dan başlıyan tələbələrin Javascripti mənimsəməsidir. Kitab sadə, başa
düşülən və anlaşılan dillə yazılmışdır. Ancaq ilkin bilikləri öyrədikdən sonra başqa
mənbələrə ehtiyacınız olacaqdır.
Spesifikasiya ECMA-262 spesifikasiyası – Javascript ilə bağlı ən dərin, izahlı və rəsmi məlumatları
özündə saxlayır. Dili 0-dan izah edir. Ancaq burada yazılanlar rəsmi şəkildə yazıldığı
üçün anlamaqda çətinlik çəkə bilərsiniz. Bir sözlə, Javascipt haqqında hər
məlumatları xırda detallarına qədər bu kitabdan tapa bilərsiniz.
Ən son versiya bu linkdədir:
https://tc39.es/ecma262/
Faydalı MDN (Mozilla) Javascript-də haqqında məlumat, nümunələr və digər məlumatlar
vardır. Dərinləməsinə öyrənmək üçün əla bir yerdir.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference
Yenədə bunun yerinə internet axtarış etmək daha yaxşısıdır. Sorğuda sadəcə
“MDN
[termin]"
istifadə edin. Məsələn parseİnt metodunu axtarmaq üçün
https://google.com/search?q=MDN+parseInt.
MSDN- Javascript ( çox zaman Jscript olara bilinir) daxil olan məlumat bazasıdır.
İnternet Explorer üçün axtarırsınızsa “RegExp MSDN” vəya “RegExp MSDN jscript”
kimi ifadələr yazaraq tapa bilərsiniz.
10
Yenilik dəstəyi Javascript inkişaf etməkdə olan dildir. Yeni xüsusiyyətlər davamlı olaraq əlavə edilir.
Brauzerlər arasında dəstəklənməlirini görmək üçün baxın :
xüsusiyyətin dəstəklənmə cədvəli
-
http://caniuse.com
Hansı brauzerlərin müasir şifrələmə metodlarını dəstəklədiyini görmək üçün-
http://caniuse.com/#feat=cryptography.
Dil xüsusiyyətinin və bunları dəstəkləyən vəya dəstəkləməyən brauzerlərin cədvəli
-
https://kangax.github.io/compat-table
Bütün bunlar sizin ehtiyacınız olacaqdır.
11
3. Kod redaktorları Kod redaktoru developerlərin vaxtlarının çoxunu sərf etdiyi yerdir. Kod
redaktorlarının iki əsas növü var: IDE və sadə redaktorlar. Developerlərin hər bir
növdən fərqli məqsədlər üçün istifadə edirlər.
IDE IDE (Integrated Development Environment) termini adətən bir "bütün layihədə"
fəaliyyət göstərən bir çox xüsusiyyətləri olan güclü bir redaktordur. Adından
göründüyü kimi, bu, yalnız bir redaktor deyil, tam miqyaslı "Development
Environment".
IDE layihəni yükləyir (bir çox fayl ola bilər), fayllar arasında naviqasiya təmin edir,
bütün layihəyə əsasən avtomatik tamamlamağa təmin edir (yalnız açıq fayl) və bir
versiya idarəetmə sistemi (git kimi), test mühiti və digər "layihə səviyyəsində"
istifadə edilir.
Hələ İDE seçməyibsinizsə, aşağıdakıları nəzərdən keçirə bilərsiniz: Visual Studio Code
(cross-platform, pulsuz).
WebStorm
(cross-platform, pullu).
Windows üçün "Visual Studio Kod" ilə “Visual Studio” qarışdırmamaq lazımdır.
“Visual Studio” ödənişli və güclü redaktorudur. Visual Studio Community-in pulsuz
versiyası da var. Javascript üçün yaxşıdır. Bir çox IDE ödənişlidir, lakin sınaq müddəti
var.
Sadə redaktorlar
12
"Sadə redaktorlar" IDE-lər kimi güclü deyil, lakin onlar sürətli və sadədirlər. Onlar
əsasən bir fayl açmaq və redaktə etmək üçün istifadə olunur. "Sadə redaktoru" və
"IDE" arasındakı əsas fərq, IDE layihənin həcminə görə seçilməlidir. Yüngül işlər
üçün isə “sadə redaktor” – lardan istifadə edilir. Sadə redaktorlarda analizatorlar və
avtomatik tamamlama əlavələri olduğundan çox istifadəyə yararlıdır.
Aşağıdakılardan birini seçə bilərsiniz:
Atom
(cross-platform, pulsuz).
Sublime Text
(cross-platform, shareware).
Notepad ++
(Windows, pulsuz).
Vim və Emacs
-dan da istifadə edə bilərsiniz.
13
4. Console.log Yazdığınız koddakı səhvlərin izahı üçün isitfadə edilir. Çox böyük ehtimal ki, səhvlər
edəcik. Bu normal haldır. Ancaq brauzerdə istifadəçilər xətaları görmürlər. Bu
səbəbdən scriptdə səhv olduqda, nəyin işləməyə mane olduğunu və bunu necə
düzəltməyin yolunu bilmək üçün birinci növbədə səhvi görməliyik. Xətaları görmək
üçün və script haqqında məlumat almaq üçün brauzerlərə “Developer Tools” əlavə
olunmuşdur. Developerlər Chrome və ya FireFox-dan istifadə edilir.Çünki ən yaxşı
“Developer Tools”-a sahibdirlər. Amma bəzi brauzerlərdə xüsusi “Developer Tools”-
a sahib ola bilər.Ancaq ümumilikdə bunların hamısı “Chrome” və ya “FireFox”-da
olacaqdır.
Başlamaq üçün xətalara baxıb Javascript scriptlərinin necə işlətməyi öyrənəcik.
Google Chrome index.html
sənədi yaradın.
Sənədin içərisində script daxilində let lalala; yazın və brauzerdə işə salın. Javascript
kodunda xəta var. İstifadəçilər tərəfində gizlədilmişdir. Bu səbəbləri onu görmək
üçün “Developer Tools” açmalıyıq.
Mac istifadə edirsinizsə Cmd+Opt+J – a eyni anda basın.
Developers Tools consol bölməsində açılacaqdır.
Buna bənzəyəcəkdir:
14
Developer Tools tam görüntüsü Chrome-un versiyasına bağlıdır. Zaman keçdikcə
yenilənir. Burada qırmızı rəngli xəta mesajıdır. Bu halda script faylınızda bilinməyən
“ilk” əmri vardır.
Sağ tərəfdə xətanın olduğu sətir nömrəsi göstərilmişdir.
index.html:12 klikləyib baxa bilərsiniz.
Xəta mesajının altında mavi rəngi > simvol vardır.
Javascript kodlarını yaza biləyimiz “kod sətri”-ni işarələyir. Onları işə salmaq üçün
enter basın (Çox sətirlik kod yazmaq üçün shift+enter-i basın ).
İndi xətaları görə bilirik və bu başlanğıç üçün yetərlidir.
Daha sonra Developer Tools-a geri qayıdacıq və Chrome-da xətaların həllinə
baxacıq.
Firefox, Edge və digərləri Digər brauzerlərin çoxunda “Developer Tools”-u açmaq üçün F12-i istifadə edilir.
Bunların görüntüsü və funksionallığı olduqca bənzərdir. Chrome ilə başlıya
bilərsiniz.
15
Safari Safari (Mac brauzeridir, Windows / Linux tərəfində dəstəklənmir) burada biraz
xüsusidir. Bunun “Developer menyusu” nü aktiv etmək lazımdır.
Seçimləri açın və “Developer” bölməsinə daxil olun. Altda seçim qutusu var:
Cmd + Opt + C konsolu dəyişdirir. Həmdə “ Developer ” adlı yeni üst menyu
bölməsi görünəcəkdir. Əmr və seçimlər vardır.
Çox sətirli giriş
Konsolda bir kod sətiri yazdıqdan sonra enter basıldıqda kodumuz işləyəcəkdir.
Birdən çox sətir əlavə etmək üçün shift+enter -lə edə bilərsiniz.
16
Nəticə Developer xətaları görməyimizə, kod yazmaq üçün, dəyişənlərə baxmaq üçün və
daha çox funksiyaları vardır.
Windows-dakı brauzerlər üçün F12 – ilə açılır. Mac üçün Chrome-un Cmd+Opt+J
Safari: Cmd + Opt + C (əvvəlcə aktiv edilməlidir)
İndi demək olarki hazırıq. Bundan sonrakı bölmədə Javascriptə keçəcik.
17
5. Salam, dünya! Kitabın bu hissəsində dilin özü olan başlanğıc səviyyə Javascript haqqında
danışacıq. Daha sonra Node.js və onun digər frameworkləri haqqında
öyrənəcəksiniz.
Javascript kodlarımızı işləməsi üçün ilk öncə kodu yazmaq üçün yer təyin
edilməlidir. Javascript kodlarımız aşağıdakı yollarla əlavə edə bilərik :
“Script” teqi Javascript kodları HTML sənədində hər hansı bir yerində