Funksiya ta’riflari

ULASHISH

Funksiya ta’riflari va funksiya e’lonlari

Funksiya ta’rifi (function definition) — funksiyani aniqlashni bildiruvchi umumiy atama.

Funksiya e’loni (function declaration) — funksiyani aniqlashning muayyan bir usuli.

Funksiya ta’riflariga quyidagilar misol bo‘ladi:

  • Funksiya deklaratsiyasi
  • Funksiya ifodalari
  • Ok funksiyalari

Misol

// Function Declaration
function myFunction(x, y) {
  return x * y;
}

// Function Expression (Named)
const myFunction = function name(x, y) {
  return x * y;
};

// Function Expression (Anonymous)
const myFunction = function (x, y) {
  return x * y;
};

// Arrow Function
const myFunction = (x, y) => x * y;

// Function Constructor
const myFunction = new Function("x", "y", "return x * y");

// Object Method
const obj = {
  myFunction(x, y) {
    return x * y;
  },
};

Funksiya deklaratsiyasi

Ushbu qo‘llanmaning boshida siz funksiyalar quyidagi sintaksis bilan e’lon qilinishini bilib oldingiz:

function functionName(parameters) {
  // code to be executed
}

Funksiya e’loni function kalit so‘zi va funksiya nomidan foydalanadi.

Misollar

Bir qatorli yozuv:

function myFunction(a, b) {return a * b}
O‘zingiz sinab ko‘ring »

Ko‘proq keng tarqalgan:

function myFunction(a, b) {
  return a * b;
}
O‘zingiz sinab ko‘ring »

E’lon qilingan funksiyalar darhol bajarilmaydi. Ular "keyinroq foydalanish uchun saqlanadi" va keyinroq, ular chaqirilganda (chaqirilganda) bajariladi.

Funksiyani kodda e’lon qilinishidan oldin yoki keyin chaqirishingiz mumkin.

Misollar

Before:

let x = myFunction(4, 3);

function myFunction(a, b) {
  return a * b;
}
O‘zingiz sinab ko‘ring »

After:

function myFunction(a, b) {
  return a * b;
}

let x = myFunction(4, 3);
O‘zingiz sinab ko‘ring »

Funksiya ifodalari

Funksiya ifodasi funksiyani o‘zgaruvchi ichida saqlaydi.

Funksiya anonim (nomsiz) bo‘lishi mumkin.

Funksiya ifodalari faqat kod ularga yetib kelganda bajariladi.


Misol

const x = function (a, b) {return a * b};
O‘zingiz sinab ko‘ring »

Funksiya ifodasi o‘zgaruvchida saqlanganidan so‘ng, o‘zgaruvchidan funksiya sifatida foydalanish mumkin:

Misol

const x = function (a, b) {return a * b};

let z = x(4, 3);
O‘zingiz sinab ko‘ring »


Ko‘tarish (Hoisting)

Funksiya deklaratsiyasi o‘z doirasining yuqori qismiga ko‘tariladi.

Funksiya ifodalari bir xil tarzda ko‘tarilmaydi.

Funksiya deklaratsiyasini ular aniqlanmasidan oldin chaqirish mumkin.

Funksiya ifodalarini ular aniqlanmaguncha chaqirib bo‘lmaydi.

Misollar

Funksiya deklaratsiyasini aniqlashdan oldin chaqirish mumkin:

const sum = add(2, 3); // Will work

function add(a, b) {return a + b;}

Funksiya ifodalarini ular aniqlanmaguncha chaqirib bo‘lmaydi:

const sum = add(2, 3); // ⛔ Will generate error

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

Asosiy farqlar

Function DeclarationFunksiya ifodasi
Sintaksis: funksiya kalit so‘zidan boshlanadigan va undan keyin talab qilinadigan ism. Sintaksis: ifoda yoki topshiriqning bir qismi va anonim bo‘lishi mumkin (ismsiz).
Ko‘tarish: Funksiya kodni bajarishdan oldin o‘z doirasining yuqori qismiga ko‘chiriladi, bu sizga ushbu kod doirasidagi istalgan joydan, hatto uning e’lon qilinishidan oldin ham chaqirish imkonini beradi (hoisting). Yuk ko‘tarish: Funksiyani ushlab turgan o‘zgaruvchi ko‘tarilishi mumkin (var, let yoki const ga bog‘liq), lekin funksiyaning o‘zi emas. Siz uni faqat kod doirasida aniqlangandan keyin chaqirishingiz mumkin.
Moslashuvchanlik: asosan global yoki ma’lum bir doirada mavjud bo‘lishi kerak bo‘lgan umumiy maqsadli funksiyalar uchun ishlatiladi. Moslashuvchanlik: boshqa funksiyalarga argumentlar (Callback-lar), darhol chaqiriladigan funksiya ifodalari va obyekt xususiyatlariga tayinlangan kabi turli kontekstlarda ishlatilishi mumkin.

O‘zgaruvchilarda saqlangan funksiyalar

O‘zgaruvchida saqlangan funksiya har qanday boshqa qiymat kabi ishlatilishi mumkin:

Misol

function myFunction(a, b) {
  return a * b;
}

let x = myFunction(4, 3);
O‘zingiz sinab ko‘ring »

JavaScript funksiyalaridan ifodalarda foydalanish mumkin:

Misol

function myFunction(a, b) {
  return a * b;
}

let x = myFunction(4, 3) * 2;
O‘zingiz sinab ko‘ring »

Function() konstruktori

Funksiyalarni JavaScript’ning Function() konstruktori yordamida ham aniqlash mumkin, lekin bu kamdan-kam qo‘llaniladi.

Misol

const myFunction = new Function("a", "b", "return a * b");

let x = myFunction(4, 3);
O‘zingiz sinab ko‘ring »

Siz aslida funksiya konstruktoridan foydalanishingiz shart emas. Yuqoridagi misol yozish bilan bir xil:

Misol

const myFunction = function (a, b) {return a * b};

let x = myFunction(4, 3);
O‘zingiz sinab ko‘ring »
Ko‘pincha JavaScript-da yangi kalit so‘zni ishlatishdan qochishingiz mumkin.

Funksiyalar — obyektlar

JavaScript-dagi typeof operatori funksiyasini qaytaradi funksiyalari.

Biroq JavaScript funksiyalarini eng to‘g‘ri tarzda obyektlar deb ta’riflash mumkin.

JavaScript funksiyalarining ham xususiyatlari, ham metodlari bor.

arguments.length xususiyati qabul qilingan argumentlar sonini qaytaradi funksiyasi bo‘yicha:

Misol

function multiply(a, b) {
  return arguments.length;
}

// Returns 0
multiply();

// Returns 2
multiply(a, b);
O‘zingiz sinab ko‘ring »

toString() usuli funksiyani string sifatida qaytaradi:

Misol

function multiply(a, b) {
  return a * b;
}

let text = multiply.toString();
O‘zingiz sinab ko‘ring »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!