- Parametrli funksiya elan edib onu arqumentlərlə çağırmaq
returnilə nəticə qaytarmaq və onuconsole.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.
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.
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.
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.
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
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.
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
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.
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
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.
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.
returnnəticəni qaytarır və funksiyanı bitirir;returnolmasa, nəticəundefined-dır.- Ox funksiyası
(a, b) => a + btək ifadəni avtomatik qaytarır;{ }olandareturnlazı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.
greet('Leyla') çağırışında 'Leyla' nədir?