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.
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
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.
// Ə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ş: 25Də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.
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əkSə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.
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.
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ərirMü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ə)
// Ə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ə sonrasetInterval()
Funksiyanı müəyyən millisaniyə intervallarla təkrar-təkrar icra edir.
setInterval(funksiya, interval)
// 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: 5Saatlar, 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
// 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.
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.
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.
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.
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.
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)
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ə: JavaScriptOrijinal 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')
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.
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)
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.
console.log(parseFloat('3.14')); // Nəticə: 3.14
console.log(parseFloat('42.7px')); // Nəticə: 42.7
console.log(parseFloat('abc')); // Nəticə: NaNisNaN()
Dəyərin NaN (Not a Number) olub-olmadığını yoxlayır.
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).
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)
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)
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.54Math.round()
Rəqəmi ən yaxın tam ədədə yuvarlaqlaşdırır.
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ə: -4Math.floor() və Math.ceil()
Rəqəmi aşağıya yuvarlaqlaşdırır (ən yaxın kiçik tam ədədə).
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ə: 5Math.abs()
Rəqəmin mütləq dəyərini (müsbət dəyərini) qaytarır.
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.14Math.pow()
Rəqəmi üstə qaldırır.
Math.pow(əsas, üst)
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ə: 1Math.pow(2, 3) = 8 (2³)
Math.sqrt()
Rəqəmin kvadrat kökünü qaytarır.
console.log(Math.sqrt(16)); // Nəticə: 4
console.log(Math.sqrt(25)); // Nəticə: 5
console.log(Math.sqrt(2)); // Nəticə: 1.4142135623730951Math.random()
0 (daxil) və 1 (xaric) arasında təsadüfi onluq rəqəm qaytarır.
// 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əmOyunlar, 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, ...)
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); // 9507 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:
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ə: alimammudovQiymət kalkulyatoru
Math funksiyalarından istifadə edərək qiymətləri hesablayın və formatlayın:
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% vergiSadə sayğac
setTimeout və setInterval istifadə edərək sadə sayğac yaradın:
// 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ə.
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.
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.
// ❌ 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.
// ❌ 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ə
Təklifiniz var, səhv və ya xəta tapdınız? Zəhmət olmasa bizimlə əlaqə saxlayın.