2.1 Dəyişənlər — bu istinadlardır
JavaScript-də dəyişənlər obyektlərə istinad edir, amma özləri deyil. Bu o deməkdir ki, siz JavaScript-də dəyişən yaradan zaman sadəcə yaddaşda obyektə istinad yaradırsınız.
Dilin bu xüsusiyyəti dəyişənlərlə işləmək üçün böyük təsirlərə malikdir, xüsusilə obyektlərin funksiyalara ötürülməsində və ya digər dəyişənlərə təyin olunmasında.
Siz dəyişən yaradıb ona dəyər təyin etdikdə, JavaScript yaddaşda həmin dəyər üçün bir obyekt ayırır və dəyişəni həmin obyektə bağlayan istinad edir. Əgər bir dəyişəni digərinə təyin etsəniz, yeni dəyişən ilkin dəyişənlə eyni obyektə istinad edəcək. Bu o deməkdir ki, əgər obyekt dəyişkəndirsə, bir dəyişənlə edilən dəyişikliklər digərində də əks olunacaq.
Nümunə:
let a = [1, 2, 3];
let b = a;
b.push(4);
console.log(a); // Çap edəcək: [1, 2, 3, 4]
Biz b
dəyişəninə 4 rəqəmi əlavə etdik, amma bu həm də a
dəyişənindəki siyahıya əlavə olundu, çünki əslində hər iki dəyişən — sadəcə [1, 2, 3]
siyahısına istinad edənlərdir.
2.2 undefined Tipi
JavaScript-də iki xüsusi məlumat tipi mövcuddur: null
və undefined
. Bu tiplər oxşarlığına görə çox vaxt proqramçıların başını qarışdırır, amma onların fərqli təyinatı var və fərqli vəziyyətlərdə istifadə olunurlar. Gəlin onları daha yaxından nəzərdən keçirək.
undefined Tipi
undefined
tipi, elan olunmuş, lakin başlatılmamış bir dəyişənin dəyərini göstərir. Həmçinin bu dəyər mövcud olmayan bir obyekt xüsusiyyətinə və ya mövcud olmayan bir array elementinə müraciət etdikdə qaytarılır.
Nümunələr
1. Başlatılmamış dəyişən:
let x;
console.log(x); // undefined
2. Mövcud olmayan obyektin xüsusiyyəti:
let obj = {};
console.log(obj.property); // undefined
3. Mövcud olmayan array elementi:
let array = [1, 2, 3];
console.log(array[5]); // undefined
4. Funksiyanın çatmayan arqumenti:
function myFunction(a, b) {
console.log(b); // undefined, əgər myFunction(1) kimi çağırılıbsa
}
myFunction(1);
undefined Xüsusiyyətləri:
undefined
həm məlumat tipi, həm də dəyərdirtypeof undefined
undefined
qaytarır
2.3 null Tipi
null
tipi dəyərin qəsdən olmadığını ifadə edir. Bu dəyər tez-tez gələcəkdə obyekt təyin olunacaq dəyişənlərin başlanğıc dəyəri kimi və ya dəyişənin dəyərini təmizləmək üçün istifadə olunur.
Nümunələr
1. Dəyişənin başlanğıc dəyərini təyin etmək:
let obj = null;
console.log(obj); // null
2. Dəyişənin dəyərini təmizləmək:
let user = { name: "Alice" };
user = null; // user artıq heç bir obyektə işarə etmir
null xüsusiyyətləri:
null
dəyərin qəsdən olmadığını ifadə edən bir dəyərdirtypeof null
object
qaytarır, bu JavaScript dilində qəbul edilmiş bir səhvdir (əslindənull
obyekt deyil)
2.4 null və undefined müqayisəsi
Baxmayaraq ki, null
və undefined
dəyərin olmamasını ifadə etmək üçün istifadə edilə bilər, onların məqsədi və kontekstindən asılı olaraq fərqləri var.
Xüsusiyyət | null | undefined |
---|---|---|
Tip | Primitiv tip | Primitiv tip |
Məqsəd | Məqsədli şəkildə dəyərin olmaması | İnitialized edilməmiş dəyişən |
İstifadə | Dəyişənlərin ilkinləşdirilməsi, dəyərin təmizlənməsi | Mövcud olmayan property-lər, array elementləri |
Default dəyər | Yox | Bəli (initialised edilməmiş dəyişənlər, funksiyaların parametrləri üçün) |
İstifadə nümunələri
1. Objekti və ya array-i dəyişənə ilkinləşdirmə:
let myObject = null;
let myArray = null;
2. Dəyərlərin yoxlanması:
let value;
if (value === undefined) {
console.log("Dəyişən initialized edilməyib.");
}
let result = null;
if (result === null) {
console.log("Dəyərin olmaması.");
}
3. Dəyərlərin təmizlənməsi:
let person = { name: "Alice" };
person = null; // İndi person obyektə işarə etmir
4. Property-nin mövcudluğunu yoxlamaq:
let obj = {};
if (obj.property === undefined) {
console.log("Property mövcud deyil.");
}
JavaScript-də null
və undefined
fərqlərini başa düşmək dəyərlərin idarə olunmasında və kodda səhvlərin qarşısını almaqda vacibdir.
undefined
adətən initialized edilməmiş dəyişənlər və ya mövcud olmayan property-ləri göstərmək üçün istifadə olunur, null
isə dəyərin olmamasını aydın şəkildə ifadə etmək üçün istifadə olunur.
Bu xüsusi məlumat tiplərindən düzgün istifadə kodu daha anlaşılır və öngörülən edir.
GO TO FULL VERSION