2.1 JavaScript-də dəyişənlər
JavaScript çevik və dinamik proqramlaşdırma dilidir, hansı ki, dəyişənlərin elan edilməsinin və verilənlər növləri ilə işləməyin müxtəlif üsullarını dəstəkləyir. Bu mühazirədə biz dəyişənlərin elan edilməsinin üç əsas üsulunu (var
, let
, const
) və JavaScript-də əsas primitiv verilənlər növlərini nəzərdən keçirəcəyik.
JavaScript-də dəyişənlər
JavaScript – dinamik tipli dildir. Dəyişənlərin tipi yoxdur. İstənilən dəyişənə istənilən anda istənilən qiyməti mənimsətmək olar (amma bəzi incəliklər var).
Dəyişən yaratmaq üçün aşağıdakı kimi bir konstruksiya yazılmalıdır:
var name;
Dəyişənə dərhal bir qiymət vermək olar:
var name = value;
Amma ümumilikdə JavaScript-də dəyişən yaratmağın tam 3 üsulu var. Gəlin indi onlar haqqında daha ətraflı danışaq.
var operatoru
var
ilə elan edilmiş dəyişənlərin funksional və ya qlobal əhatə dairəsi var. Onlar "hoisting" adı ilə tanınan "yuxarı qalxma" prosesinə məruz qalır, yəni onların elan edilməsi kodun icra edilməsi zamanı əhatə dairəsinin yuxarısına keçir.
Məsələn:
console.log(x); // undefined
var x = 10;
console.log(x); // 10
Bu nümunədə x
dəyişəni öz əhatə dairəsinin başına qaldırılır, buna görə birinci console.log
undefined
qaytarır.
Başqa sözlə, "hoisting" kodumuzu bu hala çevirir:
var x;
console.log(x); // undefined
x = 10;
console.log(x); // 10
let operatoru
Proqramçılar çox istədi ki, var
operatorunun davranışını dəyişdirsinlər, amma milyonlarla yazılmış kod sətrini pozmaqdan çəkinirdilər. Buna görə yeni bir operator icad etdilər, hansı ki, dəyişənlər yaradır, amma bir az fərqli davranışla.
let
ilə elan edilmiş dəyişənlərin blok əhatə dairəsi var. Bu, o deməkdir ki, onlar yalnız elan edildikləri kod blokunda (adətən {} içərisində) mövcuddur. let
, var
kimi "hoisting"-ə məruz qalmır.
Məsələn:
y
dəyişəni yalnız if
blokunda mövcuddur.
if (true) {
let y = 20;
console.log(y); // 20
}
console.log(y); // ReferenceError: y is not defined
const operatoru
const
ilə elan edilmiş dəyişənlərin də blok əhatə dairəsi var və bir dəfə təyin edildikdən sonra dəyişdirilə bilməz. Amma bu, obyektlərin, hansı ki const
ilə elan edilib, dəyişdirilməz olması demək deyil — onların xüsusiyyətlərini dəyişmək mümkündür.
Yəni dəyişəni dəyişmək olmaz, amma ona istinad edən obyekti dəyişmək olar. İstədilər yaxşı olsun, alındı necə həmişəki kimi.
Məsələn:
Bu nümunədə x
konstantası yenidən təyin edilə bilmir, amma obj
obyekti dəyişdirilə bilər.
const x = 30;
console.log(x); // 30
x = 40; // TypeError: Assignment to constant variable.
const obj = { name: 'Alice' };
obj.name = 'Bob'; // Bu mümkündür
console.log(obj.name); // Bob
2.2 Primitiv data tipləri
JavaScript bir neçə primitiv data tipi dəstəkləyir, hansı ki, sadə dəyərləri təmsil edir və kompleks obyekt deyillər.
Number Tipi
Hər hansı rəqəm dəyərlərini təmsil edir, tam ədədlər və yaxud onluq nöqtəli ədədlər daxil olmaqla.
Nümunələr:
let num = 42;
let pi = 3.14;
String Tipi
Mətn məlumatlarını təmsil edir: sətirlər, simvollar, emoji. Sətirə bənzəyən hər şey buraya daxildir.
Nümunələr:
let greeting = "Salam, dünya!";
let facepalm = "🤦";
let char = 'x';
Boolean Tipi
Loji dəyərləri true
və ya false
kimi təmsil edir.
let isTrue = true;
let isFalse = false;
Null Tipi
Məqsədli olaraq boş bir dəyəri təmsil edir.
let empty = null;
Əgər bir tip bir dəyərlə məhdudlaşırsa və bu dəyər dəyərsizliyi ifadə edirsə, bəlkə o unikaldır – tipdən çox dəyər olaraq?
Undefined Tipi
Təyin edilmiş, lakin başlanğıc dəyər verilməmiş dəyişəni təmsil edir.
let notAssigned;
console.log(notAssigned); // undefined
2.3 var, let və const müqayisəsi
Gəlin sonda dəyişənlər yaratmaq üçün üç yolumuzu bir dəfə də müqayisə edək:
Xarakteristika | var | let | const |
---|---|---|---|
Görünürlük sahəsi | Funksional və ya qlobal | Blok səviyyəli | Blok səviyyəli |
Hoisting | Bəli, amma başlanğıc dəyər hoisting olmur | Xeyr | Xeyr |
Təyinatın dəyişdirilməsi | Bəli | Bəli | Xeyr |
İnisializasiya | Məcburi deyil | Məcburi deyil | Məcburidir |
JavaScript dəyişənləri elan etmək üçün bir neçə üsul təqdim edir, hansılar ki kontekstdən asılı olaraq özünəməxsus xüsusiyyətlərə və tətbiq dəyərinə malikdir. var
, hoisting xüsusiyyətləri və qlobal görünürlük sahəsinə görə daha az istifadə olunur. let
və const
müasir JavaScript-də blok səviyyəli görünürlük sahəsi və təyinatın dəyişdirilməsinə nəzarətə görə üstünlük təşkil edir.
Primitiv məlumat tipləri əsas məlumat strukturları ilə işləməyə imkan verir, mürəkkəb tətbiqlərin yaradılması üçün lazım olan əsas funksionallığı təmin edir. Və bu, dünyanın ən populyar dili! :)
GO TO FULL VERSION