Dərs 3 Başlanğıc səviyyə

JavaScript-də məlumat tipləri

JavaScript-də istifadə edə biləcəyiniz müxtəlif məlumat tipləri

Nələri öyrənəcəksiniz

  • Məlumat tiplərinin nə olduğunu və nə üçün lazım olduğunu başa düşəcəksiniz
  • Primitiv tipləri öyrənəcəksiniz: Number, String, Boolean, Undefined və Null
  • İstinad tiplərini araşdıracaqsınız: obyektlər, massivlər və funksiyalar
  • Tip yoxlaması və tip çevrilməsini öyrənəcəksiniz

01 Məlumat tipləri nədir?

Proqramlaşdırmada məlumat tipləri dəyişənin hansı dəyəri saxlaya biləcəyini və onunla hansı əməliyyatları yerinə yetirə biləcəyinizi müəyyənləşdirir. Onları müxtəlif məlumat növləri üçün kateqoriyalar kimi düşünün.

Real həyatdan analoqiyaMəlumat tiplərini müxtəlif konteyner növləri kimi düşünün: rəqəm ölçü stəkanı kimidir (miqdarlar üçün), sətir etiket düzəldən kimidir (mətn üçün), və boolean işıq açarı kimidir (açıq/bağlı, doğru/yalan).

JavaScript məlumat tipləri

JavaScript-in iki əsas məlumat tipi kateqoriyası var: primitiv tiplər (sadə dəyərlər) və istinad tipləri (mürəkkəb strukturlar).

javascript
// Müxtəlif məlumat tipləri
let age = 25;              // Rəqəm
let name = 'Alice';        // Sətir
let isStudent = true;      // Boolean
let hobbies = ['reading']; // Obyekt (Massiv)
let address = null;        // Null
let job;                   // Undefined

02 Primitiv məlumat tipləri

Primitiv tiplər JavaScript-in əsas tikinti bloklanıdır. Onlar tək, sadə dəyərləri təmsil edir və dəyişdirilə bilməz (onlar dəyişməzdir). Müasir JavaScript-də 7 primitiv tip var, lakin bu başlanğıc dərsdə ən çox yayılmış 5-nə diqqət yetirəcəyik.

Əlavə məlumatJavaScript-də həmçinin daha iki primitiv tip var: BigInt (çox böyük tam ədədlər üçün) və Symbol (unikal identifikatorlar üçün). Bunlar daha mürəkkəbdir və biz onları bu kursun orta səviyyə bölməsində əhatə edəcəyik.

1️⃣ Number (Rəqəm)

Rəqəmlər həm tam, həm də kəsr ədədi dəyərləri təmsil edir. JavaScript müxtəlif rəqəm növlərini ayırd etmir.

javascript
// Müxtəlif rəqəm növləri
let age = 25;           // Tam ədəd
let price = 19.99;      // Kəsr ədəd
let negative = -10;     // Mənfi
let big = 1000000;      // Böyük ədəd

// Əsas əməliyyatlar
let sum = 10 + 5;       // 15
let product = 10 * 5;   // 50
let division = 10 / 5;  // 2
let remainder = 10 % 3; // 1

console.log(age);       // Nəticə: 25
console.log(sum);       // Nəticə: 15
QeydJavaScript-də NaN (Not a Number) adlı xüsusi dəyər var ki, bu, sıfıra bölmə və ya rəqəm olmayan sətirləri rəqəmlərə çevirmək kimi yanlış rəqəm əməliyyatını təmsil edir.

2️⃣ String (Sətir)

Sətirlər mətni təmsil edir. Onlar tək dırnaq, cüt dırnaq və ya arxa dırnaqlar (şablon literalları) ilə yaradıla bilər.

javascript
// Sətir yaratmağın üç yolu
let firstName = 'John';        // Tək dırnaq
let lastName = "Doe";         // Cüt dırnaq
let greeting = `Hello, World!`; // Arxa dırnaqlar (şablon literal)

// Sətir birləşməsi
let fullName = firstName + " " + lastName;
console.log(fullName); // Nəticə: John Doe

// Şablon literal (müasir üsul)
let message = `Hello, ${firstName} ${lastName}!`;
console.log(message); // Nəticə: Hello, John Doe!

💡 Şablon literalları + simvollarından istifadə etmədən dəyişənləri və mətni asanlıqla birləşdirməyə imkan verir.

3️⃣ Boolean (Boolean)

Boolean dəyərləri məntiqi dəyərləri təmsil edir: true (doğru) və ya false (yalan). Onlar kodunuzda qərar qəbul etmək üçün vacibdir.

javascript
let isLoggedIn = true;
let hasPermission = false;
let isActive = true;

// Müqayisələrdən boolean dəyərləri
let age = 20;
let isAdult = age >= 18;      // true əgər age > 18 və ya daha çox
let isEqual = 5 === 5;        // true
let isGreater = 10 > 5;       // true

console.log(isLoggedIn);      // Nəticə: true
console.log(isEqual);         // Nəticə: true

💡 Boolean dəyərləri adətən if ifadələrində, döngələrdə və şərt ifadələrində proqram axınını idarə etmək üçün istifadə olunur.

4️⃣ Undefined (Müəyyən edilməmiş)

Undefined dəyişənin elan edildiyini, lakin hələ dəyər verilmədiyini göstərir.

javascript
let userName;           // Elan edilib, lakin təyin edilməyib
console.log(userName);  // Nəticə: undefined

let age = undefined;    // Açıq şəkildə undefined təyin edilib
console.log(age);       // Nəticə: undefined

5️⃣ Null (Boş)

Null hər hansı dəyərin qəsdən olmamasını təmsil edir. Dəyişənin dəyəri olmadığını açıq şəkildə göstərmək istədiyiniz zaman istifadə olunur.

javascript
let selectedItem = null;  // Qəsdən dəyər yoxdur
let userProfile = null;   // İstifadəçi profili hələ yüklənməyib

console.log(selectedItem); // Nəticə: null
Undefined vs Nullundefined dəyişənə dəyər verilmədiyini göstərir, null isə onu qəsdən 'dəyərsiz' olaraq təyin etdiyinizi göstərir. Undefined-ı 'bunu doldurmağı unutdum', null-u isə 'bunu qəsdən boş buraxdım' kimi düşünün.

03 İstinad tipləri (obyektlər)

İstinad tipləri məlumat kolleksiyalarını və ya daha mürəkkəb varlıqları saxlaya bilər. Primitivlərdən fərqli olaraq, onlar dəyişkəndir (dəyişdirilə bilər).

1️⃣ Obyektlər

Obyektlər məlumatları açar-dəyər cütlərində saxlayır. Onlar bir neçə xüsusiyyəti olan məlumatları təmsil etmək üçün idealdır.

javascript
// Obyekt yaratmaq
let person = {
  name: 'Alice',
  age: 25,
  isStudent: true
};

// Obyekt xüsusiyyətlərinə baxmaq
console.log(person.name);    // Nəticə: Alice
console.log(person['age']);  // Nəticə: 25

2️⃣ Massivlər

Massivlər sıralanmış dəyər siyahılarını saxlayan xüsusi obyektlərdir. Hər dəyərin 0-dan başlayan rəqəm indeksi var.

javascript
// Massiv yaratmaq
let fruits = ['apple', 'banana', 'orange'];
let numbers = [1, 2, 3, 4, 5];
let mixed = [1, 'hello', true, null];

// Massiv elementlərinə baxmaq
console.log(fruits[0]);     // Nəticə: apple
console.log(fruits.length); // Nəticə: 3

// Element əlavə etmək
fruits.push('grape');
console.log(fruits);        // Nəticə: ['apple', 'banana', 'orange', 'grape']

💡 Massivlər alış-veriş siyahıları, istifadəçi adları və ya ballar kimi element siyahılarını saxlamaq üçün idealdır.

QeydMassivlər texniki cəhətdən obyektlərdir, lakin onlar rəqəm indeksləri ilə sıralı məlumatlar üçün xüsusi olaraq hazırlanmışdır.

3️⃣ Funksiyalar

Funksiyalar müəyyən tapşırıqları yerinə yetirən yenidən istifadə edilə bilən kod bloklanıdır. JavaScript-də funksiyalar da obyektlərdir.

javascript
// Funksiya təyin etmək
function greet(name) {
  return 'Hello, ' + name + '!';
}

// Funksiyanı çağırmaq
let message = greet('Alice');
console.log(message); // Nəticə: Hello, Alice!

// Funksiyalar dəyişənlərdə saxlanıla bilər
let sayHello = function(name) {
  return 'Hi, ' + name;
};

console.log(sayHello('Bob')); // Nəticə: Hi, Bob

04 Məlumat tiplərini yoxlamaq

typeof operatoru dəyişənin hansı məlumat tipini ehtiva etdiyini müəyyən etməyə kömək edir. Bu, sazlama və doğrulama üçün faydalıdır.

javascript
// typeof operatorundan istifadə
let age = 25;
let name = 'Alice';
let isStudent = true;
let person = { name: 'Bob' };
let colors = ['red', 'blue'];
let empty = null;
let notDefined;

console.log(typeof age);       // Nəticə: 'number'
console.log(typeof name);      // Nəticə: 'string'
console.log(typeof isStudent); // Nəticə: 'boolean'
console.log(typeof person);    // Nəticə: 'object'
console.log(typeof colors);    // Nəticə: 'object'
console.log(typeof empty);     // Nəticə: 'object' (bu Javascript-də bilinən səhvdir)
console.log(typeof notDefined);// Nəticə: 'undefined'
Qeydtypeof null 'null' əvəzinə 'object' qaytarır. Bu, geriyə uyğunluq (backward compatibility) səbəbiylə düzəldilə bilməyən JavaScript-də tarixi səhvdir. null yoxlamaq üçün value === null istifadə edin.

05 Tip çevrilməsi

Bəzən məlumatları bir tipdən digərinə çevirməli olursunuz. JavaScript bunun üçün daxili funksiyalar təqdim edir.

Sətirə çevirmək

javascript
let age = 25;
let ageString = String(age);
console.log(ageString);      // Nəticə: '25'
console.log(typeof ageString); // Nəticə: 'string'

// .toString() metodundan istifadə
let num = 42;
let numString = num.toString();
console.log(numString);      // Nəticə: '42'

Rəqəmə çevirmək

javascript
let price = '19.99';
let priceNumber = Number(price);
console.log(priceNumber);      // Nəticə: 19.99
console.log(typeof priceNumber); // Nəticə: 'number'

// Alternativ metodlar
let integer = parseInt('42');     // Nəticə: 42
let decimal = parseFloat('3.14'); // Nəticə: 3.14

console.log(integer);  // Nəticə: 42
console.log(decimal);  // Nəticə: 3.14

Boolean-a çevirmək

javascript
// Yalançı və doğru dəyərlər
console.log(Boolean(1));       // Nəticə: true
console.log(Boolean(0));       // Nəticə: false
console.log(Boolean('hello')); // Nəticə: true
console.log(Boolean(''));      // Nəticə: false
console.log(Boolean(null));    // Nəticə: false
console.log(Boolean(undefined));// Nəticə: false

💡 Yadda saxlayın: 0, boş sətirlər, null, undefined və NaN hamısı 'yalançı'dır (false-a çevrilir). Qalan hər şey 'doğru'dur (true-ya çevrilir).

06 Qaçınılmalı ümumi səhvlər

❌ Sətir və rəqəmləri toplamaq

Sətir və rəqəmlə + istifadə etdiyinizdə, JavaScript rəqəmi sətirə çevirir və onları birləşdirir.

javascript
let result = '5' + 3;
console.log(result);       // Nəticə: '53' (toplama deyil)
console.log(typeof result); // Nəticə: 'string'

// ✅ Düzgün üsul
let correct = Number('5') + 3;
console.log(correct); // Nəticə: 8

❌ === əvəzinə == istifadə etmək

Gözlənilməz tip çevrilmələrindən qaçmaq üçün həmişə === (sərt bərabərlik) istifadə edin.

javascript
let x = 5;
let y = '5';

console.log(x == y);  // Nəticə: true (sərbəst bərabərlik)
console.log(x === y); // Nəticə: false (sərt bərabərlik)

// ✅ Sürprizlərdən qaçmaq üçün həmişə === istifadə edin

❌ typeof null-un 'null' olduğunu düşünmək

JavaScript xüsusiyyəti səbəbiylə, typeof null 'object' qaytarır.

javascript
let value = null;
console.log(typeof value); // Nəticə: 'object' (məlum xüsusiyyət)

// ✅ null yoxlamaq üçün
if (value === null) {
  console.log('Dəyər null-dur');
}

❌ NaN-ı düzgün yoxlamamaq

Yanlış sətirləri rəqəmlərə çevirmək NaN ilə nəticələnir. NaN xüsusidir: JavaScript-də özünə bərabər OLMAYAN yeganə dəyərdir! NaN yoxlamaq üçün === istifadə edə bilməzsiniz.

javascript
console.log(Number('hello')); // Nəticə: NaN (Rəqəm deyil)

// ❌ NaN === NaN false qaytarır!
let result = Number('hello');
console.log(result === NaN);  // false
console.log(NaN === NaN);     // false

// ✅ isNaN() istifadə etməlisiniz
let input = 'hello';
let number = 123;

console.log(isNaN(input));  // true
console.log(isNaN(number)); // false

Xülasə

JavaScript-də 7 primitiv tip var (biz 5-ni əhatə etdik: Number, String, Boolean, Undefined, Null) və Object, Array və Function kimi istinad tipləri
Məlumat tiplərini yoxlamaq üçün typeof istifadə edin, lakin typeof null 'object' qaytarır
Sətir və rəqəmlər + ilə birləşir, ona görə lazım olduqda tipləri açıq şəkildə çevirin
Gözlənilməz tip çevrilmələrindən qaçmaq üçün müqayisələr üçün === istifadə edin
Massivlər texniki cəhətdən obyektlərdir, lakin onlar rəqəm indeksləri ilə sıralı siyahıları saxlamaq üçün optimallaşdırılmışdır

Təklifiniz var, səhv və ya xəta tapdınız? Zəhmət olmasa bizimlə əlaqə saxlayın.