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

JavaScript-də daxili funksiyalar və obyektlər

JavaScript-in təmin etdiyi güclü daxili funksiyalar və obyektlərdən istifadə etməyi öyrənin

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

  • Daxili funksiyaların nədir və nə üçün faydalıdır
  • Sətir manipulyasiyası üçün daxili funksiyaları
  • Riyazi əməliyyatlar üçün Math obyektini
  • Zaman funksiyaları (setTimeout, setInterval) və API-ləri

01 Daxili funksiyalar nədir?

Daxili funksiyalar JavaScript tərəfindən təmin edilən hazır funksiyalardır. Onları özünüz yazmağa ehtiyac yoxdur - JavaScript-də artıq mövcuddurlar və istifadəyə hazırdırlar. Bu funksiyalar ümumi proqramlaşdırma tapşırıqlarını həll edir.

Real həyat analoquDaxili funksiyaları alət dəstindəki alətlər kimi düşünün. Siz hər layihə üçün öz çəkicinizi, mişarınızı yaratmırsınız - alət dəstinə gəlmiş hazır aləltlərdən istifadə edirsiniz. Eynilə, JavaScript sizə ümumi tapşırıqlar üçün hazır funksiyalar təqdim edir.

Daxili funksiyalardan istifadənin üstünlükləri

  • Sınaqdan keçirilmiş və etibarlı - Milyonlarla tərtibatçı tərəfindən istifadə olunur
  • Optimallaşdırılmış - Performans üçün optimallaşdırılıb
  • Rahat - Vaxt qənaət edir və kodu sadələşdirir
  • Standart - Bütün JavaScript mühitlərində işləyir

Daxili funksiyaların kateqoriyaları

JavaScript yüzlərlə daxili funksiya təqdim edir. Bu dərsdə başlanğıc səviyyəsi üçün ən vacib olanlarına fokuslanacağıq:

  • Sətir funksiyaları - Mətnlə işləmək üçün
  • Math funksiyaları - Riyazi hesablamalar üçün
  • Rəqəm funksiyaları - Rəqəmləri çevirmək və formatlamaq üçün
  • Zaman funksiyaları - Kodu gecikmə ilə və ya müntəzəm icra etmək üçün
Vacib qeydconsole, setTimeout və setInterval əslində JavaScript dilinin özündə deyil, brauzerlər və Node.js tərəfindən təmin edilən API-ləridir. Onlar JavaScript mühitində mövcuddur və standart kimi istifadə olunur. Biz bu mövzunu gələcək dərslərdə ətraflı izah edəcəyik.

02 Console funksiyaları

Console obyekti debugging və məlumat üçün funksiyalar təqdim edir. Bunlar proqram yazdıqda kodunuzu anlamaq üçün əsasdır.

console.log()

Bunu əvvəlki dərslərdə görmüsüz. Ən çox istifadə edilən console funksiyası. Konsola mesaj və ya dəyər çap edir.

javascript
// Əsas istifadə
console.log('Salam, dünya!');

// Çoxlu dəyərlər
let name = 'Ali';
let age = 25;
console.log('Ad:', name, 'Yaş:', age);

// Nəticə: Ad: Ali Yaş: 25

Dəyişənləri yoxlamaq, proqram axını izləmək və debugging üçün istifadə edin.

console.error()

Xəta mesajını konsola çıxarır. Adətən qırmızı rənglə göstərilir.

javascript
function divide(a, b) {
  if (b === 0) {
    console.error('Xəta: Sıfıra bölmə mümkün deyil!');
    return;
  }
  return a / b;
}

divide(10, 0); // Qırmızı xəta mesajı göstərəcək

Səhv hallarını və xətaları qeyd etmək üçün istifadə edin.

console.warn()

Xəbərdarlıq mesajını konsola çıxarır. Adətən sarı rənglə göstərilir.

javascript
let age = -5;

if (age < 0) {
  console.warn('Xəbərdarlıq: Yaş mənfi ola bilməz!');
}

Potensial problemlər və xəbərdarlıqlar üçün istifadə edin.

console.table()

Məlumatı cədvəl formatında göstərir. Massivləri və obyektləri vizuallaşdırmaq üçün çox faydalıdır.

javascript
let users = [
  { ad: 'Ali', yaş: 25, şəhər: 'Bakı' },
  { ad: 'Leyla', yaş: 22, şəhər: 'Gəncə' },
  { ad: 'Əli', yaş: 30, şəhər: 'Sumqayıt' }
];

console.table(users); // Məlumatı cədvəl formatında göstərir

Mürəkkəb məlumat strukturlarını oxumaq üçün istifadə edin.

03 Zaman funksiyaları

Zaman funksiyaları kodu gecikmə ilə və ya müntəzəm intervallarla icra etməyə imkan verir. Bunlar animasiyalar, vaxt sayğacları və avtomatik yenilənmələr üçün faydalıdır.

setTimeout()

Funksiyanı müəyyən millisaniyə gecikmədən sonra bir dəfə icra edir.

setTimeout(funksiya, gecikmə)

javascript
// Əsas istifadə
console.log('Başlanğıc');

setTimeout(function() {
  console.log('Bu 2 saniyə sonra göstəriləcək');
}, 2000);

console.log('Son');

// Nəticə:
// Başlanğıc
// Son
// Bu 2 saniyə sonra göstəriləcək

// Arrow funksiya ilə
setTimeout(() => {
  console.log('Salam!');
}, 1000); // 1 saniyə sonra
QeydGecikmə millisaniyə ilə ölçülür (1000ms = 1 saniyə). setTimeout ID qaytarır ki, onu clearTimeout() ilə ləğv edə biləsiniz.

setInterval()

Funksiyanı müəyyən millisaniyə intervallarla təkrar-təkrar icra edir.

setInterval(funksiya, interval)

javascript
// Sayğac
let count = 0;

let intervalId = setInterval(function() {
  count++;
  console.log('Sayğac: ' + count);

  if (count >= 5) {
    clearInterval(intervalId); // 5-dən sonra Dayandır
  }
}, 1000); // hər 1 saniyə

// Nəticə:
// Sayğac: 1
// Sayğac: 2
// Sayğac: 3
// Sayğac: 4
// Sayğac: 5

Saatlar, vaxt sayğacları, real-vaxt yenilənmələr üçün istifadə edin.

clearTimeout() və clearInterval()

Bu funksiyalar planlaşdırılmış icraları dayandırır.

  • clearTimeout(timeoutID) - setTimeout-u ləğv edir
  • clearInterval(intervalID) - setInterval-ı dayandırır
javascript
// setTimeout-u ləğv etmək
let timeoutId = setTimeout(function() {
  console.log('Bu heç vaxt göstərilməyəcək');
}, 3000);

clearTimeout(timeoutId); // Dərhal ləğv edir

// setInterval-ı dayandırmaq
let counter = 0;
let intervalId = setInterval(function() {
  counter++;
  console.log(counter);

  if (counter === 3) {
    clearInterval(intervalId); // 3 dəfədən sonra Dayandır
  }
}, 1000);

İstifadəçi hərəkətlərinə cavab olaraq taymerləri dayandırmaq üçün istifadə edin.

04 Sətir funksiyaları

Sətir funksiyaları mətnlə işləməyə imkan verir. JavaScript sətirlər üçün çoxlu faydalı metodlar təqdim edir.

.length

Sətirin uzunluğunu (simvolların sayını) qaytarır. Texniki olaraq xassədir (property), funksiya deyil.

javascript
let text = 'JavaScript';
console.log(text.length); // Nəticə: 10

let message = 'Salam, dünya!';
console.log(message.length); // Nəticə: 13

.toUpperCase() və .toLowerCase()

String-in bütün hərflərini böyük hərfə çevirir.

javascript
let text = 'JavaScript';

console.log(text.toUpperCase()); // Nəticə: JAVASCRIPT
console.log(text.toLowerCase()); // Nəticə: javascript

// Orijinal
console.log(text); // Nəticə: JavaScript

.trim()

String-in əvvəlindən və sonundan boşluqları silir.

javascript
let userInput = '   Ali   ';

console.log('Orijinal: "' + userInput + '"'); // "   Ali   "
console.log('Təmizlənmiş: "' + userInput.trim() + '"'); // "Ali"

İstifadəçi daxiletmələrini təmizləmək üçün faydalıdır.

.includes()

String-in içində müəyyən mətn olub-olmadığını yoxlayır. true və ya false qaytarır.

javascript
let message = 'JavaScript öyrənmək əyləncəlidir';

console.log(message.includes('JavaScript')); // Nəticə: true
console.log(message.includes('Python'));     // Nəticə: false
console.log(message.includes('öyrənmək'));   // Nəticə: true

.startsWith() və .endsWith()

String-in müəyyən mətinlə başlayıb-başlamadığını yoxlayır.

javascript
let filename = 'document.pdf';

console.log(filename.startsWith('doc'));  // Nəticə: true
console.log(filename.endsWith('.pdf'));   // Nəticə: true
console.log(filename.endsWith('.txt'));   // Nəticə: false

.slice()

String-in bir hissəsini çıxarır və yeni string qaytarır.

string.slice(başlanğıc, son)

javascript
let text = 'JavaScript';

console.log(text.slice(0, 4));   // Nəticə: Java
console.log(text.slice(4));      // Nəticə: Script
console.log(text.slice(-6));     // Nəticə: Script

// Orijinal dəyişmədi
console.log(text); // Nəticə: JavaScript

Orijinal string dəyişdirilmir - yeni string yaradılır.

.replace()

String-də mətn axtarır və onu əvəz edir. Yalnız ilk uyğunluğu əvəz edir.

string.replace('köhnə', 'yeni')

javascript
let message = 'JavaScript əladır';

let newMessage = message.replace('əladır', 'güclüdür');
console.log(newMessage); // Nəticə: JavaScript güclüdür

// Orijinal dəyişmədi
console.log(message); // Nəticə: JavaScript əladır

.split()

String-i massivə çevirir, ayırıcı simvola görə bölür.

javascript
let sentence = 'JavaScript öyrənmək əyləncəlidir';
let words = sentence.split(' ');

console.log(words);
// Nəticə: ['JavaScript', 'öyrənmək', 'əyləncəlidir']

// CSV məlumat
let data = 'Ali,25,Bakı';
let parts = data.split(',');
console.log(parts); // Nəticə: ['Ali', '25', 'Bakı']

Cümlələri sözlərə və ya CSV məlumatlarını emal etmək üçün faydalıdır.

05 Rəqəm funksiyaları

JavaScript rəqəmlərlə işləmək üçün funksiyalar təqdim edir - onları konvertasiya etmək, yoxlamaq və formatlamaq.

parseInt()

String-i tam ədədə (integer) çevirir. Onluq hissəni kəsir.

parseInt(string, radix)

javascript
console.log(parseInt('42'));      // Nəticə: 42
console.log(parseInt('42.7'));    // Nəticə: 42 (onluq hissə kəsilir)
console.log(parseInt('42px'));    // Nəticə: 42
console.log(parseInt('abc'));     // Nəticə: NaN

// Radix (rəqəm sistemi) ilə
console.log(parseInt('FF', 16));  // Nəticə: 255 (onaltılıq)
console.log(parseInt('101', 2));  // Nəticə: 5 (ikili)

Radix parametri rəqəm sistemini göstərir (10 onluq üçün, 16 onaltılıq üçün).

parseFloat()

String-i kəsr ədədə (onluq nöqtəsi ilə) çevirir.

javascript
console.log(parseFloat('3.14'));     // Nəticə: 3.14
console.log(parseFloat('42.7px'));   // Nəticə: 42.7
console.log(parseFloat('abc'));      // Nəticə: NaN

isNaN()

Dəyərin NaN (Not a Number) olub-olmadığını yoxlayır.

javascript
console.log(isNaN(42));           // Nəticə: false
console.log(isNaN('42'));         // Nəticə: false
console.log(isNaN('abc'));        // Nəticə: true
console.log(isNaN(NaN));          // Nəticə: true

// Praktik istifadə
let userInput = '25';
let number = parseInt(userInput);

if (isNaN(number)) {
  console.log('Xəta: Rəqəm deyil');
} else {
  console.log('Etibarlı rəqəm: ' + number);
}

Riyazi əməliyyatlardan sonra etibarlı nəticələri yoxlamaq üçün istifadə edin.

isFinite()

Dəyərin sonlu ədəd olub-olmadığını yoxlayır (Infinity və ya NaN deyil).

javascript
console.log(isFinite(42));          // Nəticə: true
console.log(isFinite(Infinity));    // Nəticə: false
console.log(isFinite(-Infinity));   // Nəticə: false
console.log(isFinite(NaN));         // Nəticə: false

.toFixed()

Rəqəmi müəyyən onluq yerlərlə string-ə formatlaşdırır.

rəqəm.toFixed(onluqYerlər)

javascript
let price = 19.99567;

console.log(price.toFixed(2));   // Nəticə: "19.99"
console.log(price.toFixed(0));   // Nəticə: "20"
console.log(price.toFixed(4));   // Nəticə: "19.9957"

// Faiz hesablama
let percent = 0.12543;
console.log(percent.toFixed(2) + '%'); // Nəticə: "0.13%"

Qiymətləri və ya faizləri göstərmək üçün faydalıdır.

06 Math obyekti

Math obyekti riyazi əməliyyatlar üçün xassələr (property) və funksiyalar təqdim edir. Obyektdir, ona görə Math.functionName() kimi istifadə edirsiniz.

Math sabitləri

Math obyekti ümumi riyazi sabitlər təqdim edir:

  • Math.PI - Pi dəyəri (≈ 3.14159)
  • Math.E - Eyler rəqəmi (≈ 2.718)
javascript
console.log(Math.PI);    // Nəticə: 3.141592653589793
console.log(Math.E);     // Nəticə: 2.718281828459045

// Dairənin sahəsini hesabla
let radius = 5;
let area = Math.PI * radius * radius;
console.log('Sahə: ' + area.toFixed(2)); // Sahə: 78.54

Math.round()

Rəqəmi ən yaxın tam ədədə yuvarlaqlaşdırır.

javascript
console.log(Math.round(4.7));    // Nəticə: 5
console.log(Math.round(4.4));    // Nəticə: 4
console.log(Math.round(4.5));    // Nəticə: 5
console.log(Math.round(-4.5));   // Nəticə: -4

Math.floor() və Math.ceil()

Rəqəmi aşağıya yuvarlaqlaşdırır (ən yaxın kiçik tam ədədə).

javascript
console.log(Math.floor(4.9));    // Nəticə: 4
console.log(Math.floor(4.1));    // Nəticə: 4

console.log(Math.ceil(4.1));     // Nəticə: 5
console.log(Math.ceil(4.9));     // Nəticə: 5

Math.abs()

Rəqəmin mütləq dəyərini (müsbət dəyərini) qaytarır.

javascript
console.log(Math.abs(-42));      // Nəticə: 42
console.log(Math.abs(42));       // Nəticə: 42
console.log(Math.abs(-3.14));    // Nəticə: 3.14

Math.pow()

Rəqəmi üstə qaldırır.

Math.pow(əsas, üst)

javascript
console.log(Math.pow(2, 3));     // Nəticə: 8 (2³)
console.log(Math.pow(5, 2));     // Nəticə: 25 (5²)
console.log(Math.pow(10, 0));    // Nəticə: 1

Math.pow(2, 3) = 8 (2³)

Math.sqrt()

Rəqəmin kvadrat kökünü qaytarır.

javascript
console.log(Math.sqrt(16));      // Nəticə: 4
console.log(Math.sqrt(25));      // Nəticə: 5
console.log(Math.sqrt(2));       // Nəticə: 1.4142135623730951

Math.random()

0 (daxil) və 1 (xaric) arasında təsadüfi onluq rəqəm qaytarır.

javascript
// Təsadüfi rəqəm (0 arasında 1)
console.log(Math.random()); // Nümunə 0.7382456789

// Təsadüfi rəqəm 1-10 arasında
let random = Math.floor(Math.random() * 10) + 1;
console.log(random); // 1-10 arasında Təsadüfi rəqəm

Oyunlar, simulyasiyalar və təsadüfi seçim üçün istifadə edin.

Math.min() və Math.max()

Rəqəmlər dəstindən ən kiçik və ya ən böyük dəyəri qaytarır.

Math.min(x, y, z, ...) və Math.max(x, y, z, ...)

javascript
console.log(Math.min(5, 2, 9, 1, 7));    // Nəticə: 1
console.log(Math.max(5, 2, 9, 1, 7));    // Nəticə: 9

// Praktik istifadə
let scores = [85, 92, 78, 95, 88];
let highest = Math.max(85, 92, 78, 95, 88);
console.log('Maksimum: ' + highest); // 95

07 Praktik nümunələr

Gəlin real ssenarilərdə daxili funksiyalardan necə istifadə etməyi görək.

String validasiyası

Sətir funksiyalarından istifadə edərək istifadəçi adını validasiya edin:

javascript
function validateUsername(username) {
  // Boşluqları sil
  let cleaned = username.trim();

  // Uzunluğu yoxla
  if (cleaned.length < 3) {
    console.error('İstifadəçi adı ən azı 3 simvol olmalıdır');
    return false;
  }

  // Kiçik hərfə çevir
  cleaned = cleaned.toLowerCase();

  // Etibarsız simvolları yoxla
  if (cleaned.includes(' ')) {
    console.error('İstifadəçi adında boşluq ola bilməz');
    return false;
  }

  console.log('Etibarlı rəqəm istifadəçi adı: ' + cleaned);
  return true;
}

validateUsername('  AliMahmudov  '); // Nəticə: alimammudov

Qiymət kalkulyatoru

Math funksiyalarından istifadə edərək qiymətləri hesablayın və formatlayın:

javascript
function calculatePrice(price, taxRate) {
  // Vergi hesabla
  let tax = price * taxRate;

  // Cəm hesabla
  let total = price + tax;

  // 2 onluq yerə yuvarlaqlaşdır
  total = Math.round(total * 100) / 100;

  console.log('Qiymət: ' + price.toFixed(2) + ' AZN');
  console.log('Vergi: ' + tax.toFixed(2) + ' AZN');
  console.log('Cəm: ' + total.toFixed(2) + ' AZN');

  return total;
}

calculatePrice(100, 0.18); // 18% vergi

Sadə sayğac

setTimeout və setInterval istifadə edərək sadə sayğac yaradın:

javascript
// Sadə sayğac 5-ə qədər
let counter = 0;

console.log('Sayğac başladı...');

let intervalId = setInterval(function() {
  counter++;
  console.log('Sayğac: ' + counter);

  if (counter === 5) {
    clearInterval(intervalId);
    console.log('Sayğac tamamlandı!');
  }
}, 1000);

// Gecikmə ilə başla
setTimeout(function() {
  console.log('Bu mesaj 3 saniyə sonra göstərilir');
}, 3000);

08 Ümumi səhvlər

Daxili funksiyalarla işləyərkən baş verən ümumi səhvlər:

❌ Mötərizələri unutmak

Funksiya metodları mötərizə ilə çağırılmalıdır, hətta heç bir arqument qəbul etməsələr belə.

javascript
let text = 'javascript';

// ❌ Səhv
console.log(text.toUpperCase);  // Funksiya obyektini çap edir

// ✅ Düzgün
console.log(text.toUpperCase()); // JAVASCRIPT

❌ Orijinal dəyişməyəcəyini unutmaq

Çox string və rəqəm metodları orijinal dəyəri dəyişdirmir - yeni dəyər qaytarır.

javascript
let text = 'Salam';

// ❌ Səhv
text.toUpperCase();
console.log(text); // Hələ də "Salam" - dəyişmədi!

// ✅ Düzgün
let upper = text.toUpperCase();
console.log(upper); // "SALAM"

// Və ya
text = text.toUpperCase();
console.log(text); // "SALAM"

❌ Böyük/kiçik hərf həssaslığını unutmaq

JavaScript həssasdır: console.log düzgündür, Console.Log və ya console.Log səhvdir.

javascript
// ❌ Səhv
Console.Log('Salam');      // Xəta: Console təyin edilməyib
console.Log('Salam');      // Xəta: console.Log funksiya deyil

// ✅ Düzgün
console.log('Salam');      // Düzgün

❌ Taymerləri təmizləməyi unutmaq

setInterval istifadə edərkən onu dayandırmağı unutmayın, əks halda sonsuz işləyəcək və performans problemləri yaradacaq.

javascript
// ❌ Səhv - Taymeri təmizləmir
let count = 0;
let intervalId = setInterval(function() {
  count++;
  console.log(count);
  // clearInterval() yoxdur - sonsuz işləyəcək!
}, 1000);

// ✅ Düzgün - Taymeri düzgün təmizləyir
let count2 = 0;
let intervalId2 = setInterval(function() {
  count2++;
  console.log(count2);

  if (count2 === 10) {
    clearInterval(intervalId2); // 10-dan sonra Dayandır
  }
}, 1000);

Xülasə

Daxili funksiyalar JavaScript tərəfindən təmin edilən hazır funksiyalardır
String metodları mətn manipulyasiyası üçün güclü vasitələr təqdim edir (toUpperCase, trim, slice, split)
Math obyekti riyazi funksiyalar təqdim edir (round, random, pow, sqrt, min, max)
parseInt() və parseFloat() string-ləri rəqəmlərə çevirir. toFixed() rəqəmləri formatlaşdırır
setTimeout() və setInterval() kodu gecikmə ilə və ya müntəzəm intervallarla icra edir
console, setTimeout və setInterval API-ləridir, JavaScript dilinin özündə deyil

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