Məzmuna keç
Educora
Başlanğıc15 dəq7 / 27

Funksiyalar və ox funksiyaları

Kodu təkrar istifadə olunan hissələrə böl: funksiya elan etmək, parametrlər, `return`, susmaya görə qiymətlər, ox funksiyaları və görünmə sahəsi.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • Parametrli funksiya elan edib onu arqumentlərlə çağırmaq
  • return ilə nəticə qaytarmaq və onu console.log-dan ayırmaq
  • Ox funksiyalarını yazmaq və qısa formanın qaydalarını bilmək
  • Lokal və qlobal dəyişənləri fərqləndirmək

Tutaq ki, onlayn mağazada hər məhsulun endirimli qiymətini hesablamalısan. Eyni üç sətri on yerdə yazmaq olar, amma düsturda səhv tapsan, onu on yerdə düzəltməli olacaqsan. Bunun əvəzinə kodu bir dəfə funksiyaya yığıb ona ad verirsən və lazım olan yerdə sadəcə çağırırsan.

Funksiya elan etmək və çağırmaq

Funksiya function açar sözü, ad, mötərizədə parametrlər və fiqurlu mötərizədə gövdə ilə elan olunur. Elan etmək hələ icra etmək demək deyil: funksiya yalnız adından sonra mötərizə yazıb onu çağıranda işləyir. Çağırış zamanı ötürülən qiymətlərə arqumentlər deyilir.

JavaScript
function greet(name) {
  console.log(`Hello, ${name}!`);
}

greet('Aysel');
greet('Murad');
greet('Leyla');
▸ Gözlənilən nəticə
Hello, Aysel!
Hello, Murad!
Hello, Leyla!
name parametrdir, 'Aysel', 'Murad' və 'Leyla' isə arqumentlərdir.

return: nəticəni qaytarmaq

Çox vaxt funksiya nəyisə hesablayır və nəticəni çağırıldığı yerə qaytarır. Bunun üçün return yazılır. Qaytarılan qiyməti dəyişənə yazmaq, başqa hesablamada işlətmək və ya çap etmək olar. return icra olunan kimi funksiya dərhal bitir. return yoxdursa, funksiya undefined qaytarır.

JavaScript
function calculateArea(width, height) {
  return width * height;
}

const room = calculateArea(4, 5);
console.log('Room:', room);
console.log('Two rooms:', calculateArea(3, 3) + calculateArea(2, 1));

function addNoReturn(a, b) {
  const sum = a + b;
}
console.log(addNoReturn(2, 3));
▸ Gözlənilən nəticə
Room: 20
Two rooms: 11
undefined

Parametrə susmaya görə qiymət vermək olar: arqument ötürülməsə, həmin qiymət istifadə olunur.

JavaScript
function orderTea(size = 'medium', sugar = 1) {
  return `${size} tea with ${sugar} sugar`;
}

console.log(orderTea());
console.log(orderTea('large'));
console.log(orderTea('small', 0));
▸ Gözlənilən nəticə
medium tea with 1 sugar
large tea with 1 sugar
small tea with 0 sugar

Ox funksiyaları

Ox funksiyası (arrow function) funksiyanı daha qısa yazmağın müasir üsuludur: function sözü əvəzinə parametrlərdən sonra => işarəsi qoyulur. Gövdə tək ifadədirsə, fiqurlu mötərizə və return yazılmır — ifadənin qiyməti avtomatik qaytarılır. Tək parametrin ətrafındakı mötərizəni də buraxmaq olar.

JavaScript
const square = (x) => x * x;
const add = (a, b) => a + b;
const shout = text => text.toUpperCase() + '!';
const sayHi = () => 'Hi!';

const describe = (name, age) => {
  const group = age >= 18 ? 'an adult' : 'a teenager';
  return `${name} is ${group}`;
};

console.log(square(7), add(2, 3));
console.log(shout('goal'), sayHi());
console.log(describe('Elvin', 15));
▸ Gözlənilən nəticə
49 5
GOAL! Hi!
Elvin is a teenager
JavaScript
const double1 = (n) => n * 2;
const double2 = (n) => { n * 2; };
const double3 = (n) => { return n * 2; };

console.log(double1(5), double2(5), double3(5));
▸ Gözlənilən nəticə
10 undefined 10

Görünmə sahəsi və funksiya qiymət kimi

Funksiyanın içində yaradılan dəyişən lokaldır: o, yalnız həmin funksiyanın içində mövcuddur. Kənarda yaradılan dəyişəni isə funksiyanın içindən oxumaq olar. Bu qayda funksiyaları bir-birindən təcrid edir və adların toqquşmasının qarşısını alır.

JavaScript
const siteName = 'Educora';

function showScope() {
  const secret = 42;
  console.log(siteName, secret);
}

showScope();
console.log(typeof secret);
▸ Gözlənilən nəticə
Educora 42
undefined
Funksiyadan kənarda secret mövcud deyil — typeof bunu göstərir.

JavaScript-də funksiya da qiymətdir: onu dəyişənə yazmaq və başqa funksiyaya arqument kimi ötürmək olar. Başqa funksiyaya ötürülən funksiyaya callback deyilir. Bu ideya massiv metodlarında və asinxron kodda hər yerdə qarşına çıxacaq.

JavaScript
function repeat(times, action) {
  for (let i = 1; i <= times; i++) {
    action(i);
  }
}

repeat(3, (step) => console.log(`Step ${step}`));
▸ Gözlənilən nəticə
Step 1
Step 2
Step 3
Tapşırıq

Selsi dərəcəsini Farenheytə çevirən toFahrenheit ox funksiyasını yaz. Düstur: celsius * 9 / 5 + 32. Funksiya nəticəni çap etməməli, return etməlidir — çap işini aşağıdakı sətirlər görür.

Tapşırıq · JavaScript
const toFahrenheit = (celsius) => {
  // return the temperature in Fahrenheit
};

console.log(toFahrenheit(0));
console.log(toFahrenheit(100));
console.log(toFahrenheit(-40));
▸ Gözlənilən nəticə
32
212
-40

Əsas fikirlər

  • Funksiya bir dəfə yazılıb dəfələrlə çağırılan kod blokudur.
  • Parametrlər elanda, arqumentlər çağırışda olur; parametrlərin susmaya görə qiyməti ola bilər.
  • return nəticəni qaytarır və funksiyanı bitirir; return olmasa, nəticə undefined-dır.
  • Ox funksiyası (a, b) => a + b tək ifadəni avtomatik qaytarır; { } olanda return lazımdır.
  • Funksiya içindəki dəyişənlər lokaldır; funksiyalar qiymət kimi ötürülə bilər (callback).

Özünü yoxla

10 sual. Hər düzgün cavab XP qazandırır.

1 / 10
greet('Leyla') çağırışında 'Leyla' nədir?