Funksiya ifodalari
Funksiya ifodasi nima?
Funksiya ifodasi — bu o‘zgaruvchida saqlangan funksiya.
// Standard Function
function multiply(a, b) {
return a * b;
}
// Function Expression
const multiply = function(a, b) {
return a * b;
};
Funksiya ifodasi o‘zgaruvchida saqlanganidan so‘ng, o‘zgaruvchidan funksiya sifatida foydalanish mumkin:
Anonim funksiyalar
Funksiya ifodalari odatda anonim funksiyalar yaratish uchun ishlatiladi.
Yuqoridagi funksiya aslida nomsiz funksiyadir.
O‘zgaruvchilarda saqlangan funksiyalarga nom kerak emas.
O‘zgaruvchining nomi funksiyani chaqirish uchun ishlatiladi.
Biroq funksiya ifodalari nomlangan bo‘lishi ham mumkin:
const add = function add(a, b) {return a + b;};
Funksiya ifodalarida nuqtali vergul ishlatiladi
Funksiya ifodasi — bu JavaScript operatori.
Shuning uchun u odatda nuqtali vergul bilan tugaydi.
Misol
const add = function(a, b) {
return a + b;
};
O‘zgaruvchilarda saqlangan funksiyalar
Funksiya ifodasi o‘zgaruvchida saqlangani uchun undan qiymat kabi foydalanish mumkin.
Bu funksiyalarni boshqa funksiyalarga uzatishda (callback’lar) foydali.
Funksiya ifodasi o‘zgaruvchiga tayinlanishi, boshqa funksiyaga argument sifatida uzatilishi yoki funksiyadan qaytarilishi mumkin.
Misol
function run(fn) {
return fn();
}
const sayHello = function() {
return "Hello";
};
run(sayHello);
Funksiyalar va funksiya ifodalari
JavaScript funksiyalari yordam kalit so‘zi bilan aniqlanadi.
JavaScript funksiyalarini turli usullarda aniqlash mumkin.
JavaScript-da Funksiya deklaratsiyasi va Funksiya ifodasi funksiyalarni aniqlashning turli usullarini, ularning turli sintaksisini va ular bilan ishlash usullarini bildiradi:
Siz ularni chaqirganingizda ikkalasi ham bir xil ishlaydi.
Farqi shundaki, ular sizning kodingizda mavjud bo‘lganda.
Funksiya e’lonlari va funksiya ifodasi
Funksiya e’loni (yoki shunchaki funksiya) quyidagilar yordamida aniqlanadi:
- The funksiyasi Kalit so‘z
- A function Nomi
- Qavs ichidagi parametrlar
- Kod blokini o‘rab turuvchi jingalak qavslar
function add(a, b) {return a + b;}
Funksiya ifodasi quyidagilar yordamida aniqlanadi:
- The funksiyasi Kalit so‘z
- Qavs ichidagi parametrlar
- Kod blokini o‘rab turuvchi jingalak qavslar
const add = function(a, b) {return a + b;};
Yuqoridagi Function sayHello o‘zgaruvchisida saqlanadi.
Uni ishga tushirish uchun sayHello()’ni chaqirasiz.
Ko‘tarish (Hoisting)
Funksiya deklaratsiyasini aniqlashdan oldin chaqirish mumkin.
Funksiya ifodalarini ular aniqlanmaguncha chaqirib bo‘lmaydi.
Funksiya deklaratsiyasi o‘z doirasining yuqori qismiga "ko‘tariladi". Bu kodda aniqlanmasdan oldin funksiyani chaqirishingiz mumkin degan ma’noni anglatadi:
let sum = add(2, 3); // Will work
function add(a, b) {return a + b;}
Funksiya ifodalari funksiya deklaratsiyasi kabi ko‘tarilmaydi.
Ular bajarilish o‘z ta’rifiga etganida yaratiladi va undan oldin chaqirib bo‘lmaydi:
let sum = add(2, 3); // ⛔ Will generate error
const add = function (a, b) {return a + b;};
Asosiy farqlar
- Sintaksis:
Funksiya e’lonlari nom talab qiladi. Funksiya ifodalari anonim bo‘lishi mumkin. - Yuk ko‘tarish: Funksiya deklaratsiyasi ko‘tariladi. Funksiya ifodalari emas.
- Moslashuvchanlik: Funksiya deklaratsiyasi ular qayerda va qanday ishlatilishida ko‘proq moslashuvchanlikni taklif qiladi.
Viktorina
Qaysi turdagi Function kodda aniqlanmasidan oldin chaqirilishi mumkin?
Har biridan qachon foydalanish kerak
- Umumiy maqsadli funksiyalar uchun funksiya e’lonlaridan foydalaning
- O‘zgaruvchilarga Functionlar tayinlashda Function ifodalaridan foydalaning
- Callback’lar va hodisa ishlovchilarida funksiya ifodalaridan foydalaning
Ushbu darslikda keyinroq
Funksiya ifodalari yuqori moslashuvchanlikni taklif qiladi va JavaScript-da turli maqsadlarda keng qo‘llaniladi va siz keyingi boblarda ko‘proq funksiya ifodalarini ko‘rasiz:
Arrow funksiyalar
Qisqa arrow funksiya sintaksisi (=>) funksiya ifodalarini yozishning zamonaviy usulidir.- Callback-lar Vaziyat tinglovchilari yoki asinxron operatsiyalar kabi boshqa funksiyalarga argument sifatida funksiyalarni o‘tkazish.
- Closures — funksiya ifodalari closure’lar (yopiq funksiyalar) yaratishga yordam beradi; closure’lar funksiyalarga o‘zini o‘rab turgan doiradagi o‘zgaruvchilarni eslab qolish va ulardan foydalanish imkonini beradi.
Darhol chaqiriladigan funksiya ifodalari (IIFE)
Aniqlanishi bilanoq ishga tushadigan funksiya ifodalari ko‘pincha xususiy ko‘rinish sohalarini yaratish va global o‘zgaruvchilar to‘qnashuvining oldini olish uchun ishlatiladi.
Viktorina
SayHello va sayHello() o‘rtasidagi farq nima?
Keng tarqalgan xatolar
Nuqtali vergulni unutish
Funksiya ifodalari operator hisoblanadi va ; (nuqtali vergul) bilan tugashi kerak.Hoisting’ni kutish
Arrow funksiyalar hoisting qilinmaydi.
Funksiya ifodasini u e’lon qilinishidan oldin chaqira olmaysiz.Havola va chaqiruvni chalkashtirish
sayHello — funksiyaning o‘zi. sayHello() esa funksiyani chaqiradi.Funksiya nomlari va o‘zgaruvchilarni chalkashtirish
Ifodalarda o‘zgaruvchi nomi funksiyaga havola vazifasini bajaradi.
Keyingi bob
- Arrow funksiyalar — funksiya ifodalari uchun qisqa sintaksis
- function kalit so‘zini tushirib qoldirish mumkin
- return kalit so‘zini tushirib qoldirish mumkin
- Figurali qavslarni tushirib qoldirish mumkin
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
