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

JavaScript-də funksiyalar

Təkrar istifadə edilə bilən kod blokları yaratmağı və funksiyalarla işləməyi öyrənin

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

  • Funksiyaların nə olduğunu və niyə vacib olduğunu
  • Funksiyaların elan edilməsi və çağırılması üsullarını
  • Parametrləri və arqumentləri istifadə etməyi
  • Return ifadəsini və funksiyadan dəyər qaytarmağı

01 Funksiyalar nədir?

Funksiya müəyyən bir tapşırığı yerinə yetirən təkrar istifadə edilə bilən kod blokudur. Funksiyaları bir dəfə təyin edib, proqramınızın istənilən yerində istədiyiniz qədər çağıra bilərsiniz.

Real həyat analoquFunksiyaları resept kimi düşünün: resept bir dəfə yazılır və istədiyiniz zaman istifadə edə bilərsiniz. Hər dəfə yemək bişirəndə resepti yenidən yazmağa ehtiyac yoxdur - sadəcə resepti izləyirsiniz.

Funksiyalardan istifadənin üstünlükləri

  • Təkrar istifadə - Eyni kodu bir neçə dəfə yazmaq əvəzinə funksiya çağırın
  • Təşkilat - Kodu kiçik, idarə edilə bilən hissələrə bölün
  • Abstraksiya - Mürəkkəb əməliyyatları sadə funksiya çağırışlarının arxasında gizlədin
  • Saxlama - Kodu bir yerdə dəyişdirin, hər yerdə istifadə edin

Funksiyanın anatomiyası

Funksiyanın əsas hissələri:

  • function açar sözü - JavaScript-ə funksiya yaratdığınızı bildirir
  • Funksiya adı - Funksiyanı çağırmaq üçün istifadə etdiyiniz identifikator
  • Parametrlər - Funksiyanın qəbul etdiyi dəyişənlər (mötərizə içində)
  • Funksiya gövdəsi - Funksiya çağırıldıqda icra olunan kod (məngənələr içində)
  • Return ifadəsi - Funksiyanın çıxış dəyəri

02 Funksiyaların elan edilməsi

JavaScript-də funksiya yaratmağın bir neçə yolu var. İndi əsas üsula - funksiya bəyannaməsinə fokuslanacağıq.

Funksiya bəyannaməsi

Funksiya bəyannaməsi function açar sözü ilə başlayır, ardınca funksiya adı, parametrlər və funksiya gövdəsi gəlir.

function funksiyanınAdı(parametr1, parametr2) { // icra ediləcək kod }

javascript
// Sadə funksiya
function greet() {
  console.log('Salam, dünya!');
}

Funksiya adlandırma qaydaları

Yaxşı funksiya adları kodu oxumağı asanlaşdırır:

  • Təsviredici adlardan istifadə edin - funksiyanın nə etdiyini deyir
  • Fel istifadə edin - funksiyalar əməliyyatlar yerinə yetirir (calculateSum, getUserName)
  • camelCase istifadə edin - birinci söz kiçik, sonrakılar böyük hərflə (calculateTotalPrice)
  • Qısa amma aydın olun - çox uzun və ya çox qısa adlardan qaçının

Funksiya bəyannamə nümunələri

Gəlin bir neçə sadə funksiya yaradaq:

javascript
// Sadə funksiya
function sayHello() {
  console.log('Salam!');
}

// Parametrli funksiya
function greetPerson(name) {
  console.log('Salam, ' + name + '!');
}

// Çoxlu parametrlər
function addNumbers(a, b) {
  let sum = a + b;
  console.log('Cəm: ' + sum);
}

03 Funksiyaların çağırılması

Funksiya təyin etdikdən sonra onu adından və mötərizədən istifadə edərək çağırmalısınız. Bu funksiyanın içindəki kodun icra olunmasına səbəb olur.

Çağırış sintaksisi

Funksiya çağırmaq üçün funksiya adını yazın və ardınca mötərizə əlavə edin:

javascript
// Funksiya təyin et
function sayHello() {
  console.log('Salam!');
}

// Funksiyanı çağır
sayHello();
// Nəticə: Salam!

İcra axını

Funksiya çağırıldıqda nə baş verir:

  1. Proqram icra funksiya çağırışında dayanır
  2. Proqram funksiya gövdəsinə keçir
  3. Funksiya gövdəsinin içindəki kod icra olunur
  4. Funksiya bitdikdən sonra proqram çağırış nöqtəsinə qayıdır
  5. Proqram funksiya çağırışından sonra davam edir

Funksiyaları bir neçə dəfə çağırmaq

Funksiyanın gücü təkrar istifadə olunmasındadır. Eyni funksiyanı neçə dəfə istəsəniz çağıra bilərsiniz:

javascript
function greet() {
  console.log('Salam!');
}

// Funksiyanı çağırmaq
greet(); // Çap edir: Salam!
greet(); // Çap edir: Salam!
greet(); // Çap edir: Salam!

04 Parametrlər və arqumentlər

Parametrlər funksiyaların dinamik və çevik olmasını təmin edir. Onlar funksiyanın fərqli məlumatlarla işləməsinə imkan verir.

Parametrlər vs Arqumentlər

Parametrlər təyin edildikdə sadalanan dəyişənlərdir

Arqumentlər çağırıldıqda ötürülən faktiki dəyərlərdir

function greet(name) - burada 'name' parametrdir; greet('Ali') - burada 'Ali' arqumentdir

Tək parametr

Funksiya bir parametr qəbul edə bilər:

javascript
function greet(name) {
  console.log('Salam, ' + name + '!');
}

greet('Ali');     // Nəticə: Salam, Ali!
greet('Leyla');   // Nəticə: Salam, Leyla!
greet('Əli');     // Nəticə: Salam, Əli!

Çoxlu parametrlər

Funksiyalar bir neçə parametr qəbul edə bilər, vergüllə ayrılmış:

javascript
function introduce(name, age, city) {
  console.log('Mənim adım ' + name + ', mən ' + age + ' yaşındayam və ' + city + '-də yaşayıram.');
}

introduce('Ali', 25, 'Bakı');
// Nəticə: Mənim adım Ali, mən 25 yaşındayam və Bakı-da yaşayıram.

function calculateArea(width, height) {
  let area = width * height;
  console.log('Sahə: ' + area);
}

calculateArea(10, 5);
// Nəticə: Sahə: 50

Əvvəlcədən təyin olunan (default) parametr dəyərləri

Arqument təmin edilmədikdə parametrlərə default dəyərlər verə bilərsiniz:

javascript
function greet(name = 'Qonaq') {
  console.log('Salam, ' + name + '!');
}

greet('Ali');    // Nəticə: Salam, Ali! (Təmin edilib)
greet();         // Nəticə: Salam, Qonaq! (Təmin edilməyib, default istifadə olunur)

function calculatePrice(price, tax = 0.18) {
  let total = price + (price * tax);
  return total;
}

console.log(calculatePrice(100));      // Nəticə: 118 (Təmin edilməyib, default istifadə olunur)
console.log(calculatePrice(100, 0.10)); // Nəticə: 110 (Təmin edilib)

05 Return ifadəsi

Return ifadəsi funksiyadan dəyər qaytarmağa imkan verir. Funksiyadan çıxan nəticədir və onu dəyişənə təyin edə və ya hesablamalarda istifadə edə bilərsiniz.

Return əsasları

Return açar sözündən istifadə edərək funksiyadan dəyər qaytarın:

javascript
function add(a, b) {
  return a + b;
}

let result = add(5, 3);
console.log(result); // Nəticə: 8

Return ifadəsi iki şey edir:

  • Funksiyanın icrasını dərhal dayandırır
  • Göstərilən dəyəri çağırışçıya qaytarır

Qaytarılan dəyərlərdən istifadə

Funksiyadan qaytarılan dəyəri tutub istifadə edə bilərsiniz:

javascript
function multiply(a, b) {
  return a * b;
}

// Nəticəni dəyişəndə saxla
let result = multiply(4, 5);
console.log('Nəticə: ' + result); // Nəticə: Nəticə: 20

// Hesablamada istifadə et
let total = multiply(3, 7) + 10;
console.log(total); // Nəticə: 31

Return olmadan funksiyalar

Bütün funksiyaların dəyər qaytarması lazım deyil. Return ifadəsi olmayan funksiyalar avtomatik olaraq undefined qaytarır:

javascript
// Return yoxdur - undefined qaytarır
function logMessage(message) {
  console.log(message);
}

let result1 = logMessage('Salam!');
console.log(result1); // Nəticə: undefined

// Return ilə - string qaytarır
function getMessage() {
  return 'Salam, dünya!';
}

let result2 = getMessage();
console.log(result2); // Nəticə: Salam, dünya!
QeydƏməliyyat yerinə yetirən amma dəyər qaytarmayan funksiyalara tez-tez 'void funksiyalar' və ya 'prosedurlar' deyilir.

Erkən return

Return funksiyadan erkən çıxmaq üçün istifadə oluna bilər:

javascript
function divide(a, b) {
  if (b === 0) {
    console.log('Sıfıra bölmə mümkün deyil!');
    return; // Erkən çıxış
  }

  let result = a / b;
  console.log('Nəticə: ' + result);
}

divide(10, 2);  // Nəticə: Nəticə: 5
divide(10, 0);  // Nəticə: Sıfıra bölmə mümkün deyil!

Bu səhv halları və ya xüsusi şərtləri idarə etmək üçün faydalıdır.

06 Funksiya ifadələri

Funksiya bəyannamələrindən əlavə, JavaScript funksiya ifadələrini dəstəkləyir. Bu funksiyanı dəyişənə təyin etməkdir.

Sintaksis

Funksiya ifadəsi funksiya yaradır və onu dəyişənə təyin edir:

javascript
// Funksiya ifadəsi
let greet = function(name) {
  console.log('Salam, ' + name + '!');
};

greet('Ali'); // Nəticə: Salam, Ali!

// Dəyişənlərdə saxlana bilər
let sayGoodbye = function() {
  console.log('Sağ ol!');
};

sayGoodbye(); // Nəticə: Sağ ol!

Bəyannamə vs İfadə

Əsas fərq qaldırılmadadır (hoisting):

Funksiya bəyannamələri qaldırılır - elan edilməzdən əvvəl çağıra bilərsiniz

Funksiya ifadələri qaldırılmır - yalnız təyindən sonra çağıra bilərsiniz

javascript
// ✅ Düzgün - Funksiya bəyannaməsi
sayHello(); // Bu işləyir

function sayHello() {
  console.log('Salam!');
}

// ❌ Səhv - Funksiya ifadəsi
sayGoodbye(); // Bu işləməyəcək - Xəta!

let sayGoodbye = function() {
  console.log('Sağ ol!');
};
QeydHoisting mövzusu daha mürəkkəbdir və biz onu bu kursun orta səviyyə bölməsində əhatə edəcəyik..

07 Ümumi səhvlər

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

❌ Funksiyaları çağırmağı unutmaq

Mötərizə olmadan funksiya adı yazmaq funksiyanı çağırmır, sadəcə funksiya obyektinə istinad edir.

javascript
function greet() {
  console.log('Salam!');
}

// ❌ Səhv
greet;  // Funksiyanı çağırmır, sadəcə funksiya obyektinə istinad edir

// ✅ Düzgün
greet(); // Funksiyanı düzgün çağırır

❌ Parametr sayı uyğunsuzluğu

Funksiya gözlədiyi parametrlərdən az və ya çox arqument ötürmək gözlənilməz nəticələrə səbəb ola bilər.

javascript
function greet(name, age) {
  console.log('Salam, ' + name + '! Sən ' + age + ' yaşındasan.');
}

// Çox arqument - əlavələr nəzərə alınmır
greet('Ali', 25, 'Bakı');
// Nəticə: Salam, Ali! Sən 25 yaşındasan.

// Az arqument - əksik olanlar undefined olur
greet('Leyla');
// Nəticə: Salam, Leyla! Sən undefined yaşındasan.

JavaScript arqument sayını zorla yoxlamır, lakin düzgün sayda təmin etmək yaxşı praktikadır.

❌ Return ifadəsini unutmaq

Funksiyanın dəyər qaytarmasını gözləyirsinizsə, return ifadəsini daxil etməyi unutmayın.

javascript
// ❌ Səhv - Return yoxdur
function add(a, b) {
  let sum = a + b;
  // Return yoxdur!
}

let result = add(5, 3);
console.log(result); // Nəticə: undefined

// ✅ Düzgün - Return var
function multiply(a, b) {
  return a * b;
}

let result2 = multiply(5, 3);
console.log(result2); // Nəticə: 15

❌ Return-dan sonra kod

Return-dan sonra kod heç vaxt icra olunmayacaq, çünki return funksiyadan çıxır.

javascript
function calculate(x) {
  return x * 2;
  console.log('Bu mesaj göstərilməyəcək'); // Bu kod heç vaxt icra olunmayacaq
}

calculate(5);
// Yalnız 10 qaytarır, console.log heç vaxt icra olunmur

Xülasə

Funksiyalar təkrar istifadə edilə bilən kod bloklarıdır.
Function açar sözü, ad, parametrlər və gövdə ilə funksiyaları elan edin
Funksiya adı və mötərizə ilə funksiyaları çağırın. Eyni funksiyanı bir neçə dəfə çağıra bilərsiniz
Parametrlər funksiyaya məlumat ötürməyə imkan verir. Arqumentlər çağırış zamanı ötürülən faktiki dəyərlərdir
Return ifadəsi funksiyadan dəyər qaytarır. Return olmadan funksiyalar undefined qaytarır

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