Nomi bor, lekin Function Expression bo‘lgan funksiya JavaScriptda

Keling, endi nomi bo‘lgan, lekin ifodada ishtirok etayotgani uchun Function Expression bo‘lgan funksiya yaratamiz:

javascript+function func() {
  console.log('!');
}

Qizigi shundaki, func nomi orqali biz o‘zimizning funksiyamizga murojaat qila olmaymiz, bu xatolikka olib keladi:

javascript+function func() {
  console.log('!');
}

func(); //!! xatolik beradi

Funksiyamizni chaqirish imkoniyatiga ega bo‘lish uchun uni qandaydir o‘zgaruvchiga tayinlash kerak:

javascriptlet test = function func() {
  console.log('!');
};

test(); // '!' ni chiqaradi

Yana bir bor: funksional ifoda bo‘lgan funksiya uning nomi bilan chaqirilishi mumkin emas. Bunday funksiyani faqatgina o‘sha funksiya yozilgan o‘zgaruvchi yordamida chaqirish mumkin.

Shunday bo‘lsa-da, funksional ifoda funksiya nomiga ega bo‘lishi mumkin, bu sintaktik jihatdan to‘g‘ri bo‘ladi. Buning nima uchun kerakligini keyingi darslarda ko‘rib chiqamiz.

Xulosa qilaylik: funksiyalar Function Declaration yoki Function Expression hisoblanadi, chunki ular nomga ega yoki yo‘qligi sababli emas, balki ifodalarda ishtirok etayotganligi yoki etmayotganligi sababli.

Yuqorida ko‘rganingizdek, nomasiz funksiya Function Declaration deb qaralishi mumkin, nomli funksiya esa Function Expression bo‘lishi mumkin.