Skip to content

JavaScript Arrow Funksiyalar (Arrow Functions)

Arrow functions (strelkali funksiyalar) funksiya ifodalarini (function expressions) qisqaroq sintaksis bilan yozish imkonini beradi.

Siz function kalit so'zini, return kalit so'zini va jingalak qavslarni yozmasligingiz mumkin:

Misol

js
const add = (a, b) => a * b;

Arrow funksiyalar ES6 versiyasida qo'shilgan va zamonaviy JavaScript-da juda keng qo'llaniladi.


Arrow Funksiya Sintaksisi

Arrow funksiyalar har doim => (strelka) belgisi bilan yoziladi va ular doimo funksiya ifodasi hisoblanadi.

js
const add = (a, b) => {
  return a + b;
};

Agar funksiya tanasi faqat bitta operatordan iborat bo'lsa, qisqaroq yozish mumkin:

js
const add = (a, b) => a * b;

Parametrlar va Qavslar

  1. Parametrlar yo'q bo'lsa: Bo'sh qavslar majburiy.
    js
    const hello = () => "Salom Dunyo!";
  2. Bitta parametr bo'lsa: Qavslarni yozmaslik mumkin.
    js
    const square = x => x * x;
  3. Bir nechta parametr bo'lsa: Qavslar majburiy.
    js
    const add = (x, y) => x + y;

return va Jingalak Qavslar

Agar funksiya faqat bitta qiymat qaytarsa, jingalak qavslar va return operatorini olib tashlash mumkin (yuqoridagidek). Lekin ehtiyot bo'ling: agar siz jingalak qavslarni qo'ysangiz, return operatorini ham yozishingiz shart, aks holda funksiya undefined qaytaradi.

js
// ❌ undefined qaytaradi
const myFunction = (x, y) => { x * y };

// ✅ To'g'ri (Expected result)
const myFunction = (x, y) => { return x * y };

// ✅ To'g'ri (Qisqa usul)
const myFunction = (x, y) => x * y;

Arrow Funksiyalar va this Kalit So'zi

Arrow funksiyalarning oddiy funksiyalardan eng katta farqi — bu this kalit so'zi bilan ishlashidir.

  • Arrow funksiyalarning o'zining this qiymati yo'q.
  • Ular thisni tashqi (o'rab turgan) koddan meros qilib oladi.
  • Shu sababli, arrow funksiyalarni obyekt metodlari sifatida ishlatish tavsiya etilmaydi, chunki this kutilganidek ishlamasligi mumkin.

Qachon Ishlatish Kerak?

  • Qisqa funksiyalar uchun.
  • Callback-lar (masalan, map, filter, forEach) uchun.
  • Tashqi kodning this qiymatini saqlab qolish kerak bo'lganda.

Ko'p Yo'l Qo'yiladigan Xatolar

  1. Hoistingni kutish: Arrow funksiyalar yuqoriga ko'tarilmaydi (hoisted emas). Ularni ishlatishdan oldin e'lon qilish kerak.
  2. thisni adashtirish: Obyekt metodlarida ehtiyot bo'ling.
  3. Qavslar qoidasini unutish: Nol yoki bir nechta parametrlar uchun qavslar shart.