Skip to content

JavaScript Funksiyani Aniqlash

JavaScript-da funksiyalarni aniqlashning bir necha yo'li mavjud. Ularni tushunish kodning qanday ishlashini va hoisting jarayonini bilishga yordam beradi.


Funksiya deklaratsiyasi (Function Declaration)

Bu an'anaviy usul bo'lib, function kalit so'zi bilan boshlanadi.

Misol

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

Hoisting (Ko'tarilish)

Funksiya deklaratsiyalari hoisted hisoblanadi. Ya'ni, siz funksiyani u e'lon qilinishidan oldin ham chaqirishingiz mumkin.


Funksiya ifodasi (Function Expression)

Funksiya o'zgaruvchiga qiymat sifatida berilishi mumkin. Buni funksiya ifodasi deyiladi.

Misol

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

// Chaqirish:
let z = x(4, 3)

Hoisting farqi

Funksiya ifodalari hoisted emas. Siz ularni e'lon qilinmaguncha chaqira olmaysiz.


Arrow funksiyalar (ES6)

Arrow funksiyalar qisqaroq sintaksis taqdim etadi va o'zining this qiymatiga ega emas.

Misol

js
// An'anaviy:
var x = function (x, y) {
  return x * y
}

// Arrow:
const x = (x, y) => x * y

Funksiyalar — bu obyektlar!

JavaScript-da typeof funksiya uchun "function" qaytarsa ham, aslida funksiyalar obyekt hisoblanadi.

Ularda xususiyatlar va metodlar mavjud:

  • arguments.length — funksiyaga yuborilgan argumentlar soni.
  • toString() — funksiya kodini satr ko'rinishida qaytaradi.

Misol

js
function myFunction(a, b) {
  return arguments.length
}

console.log(myFunction(4, 3)) // 2 qaytaradi

Obyekt sifatida funksiya

Funksiyalar obyekt bo'lgani uchun, ularda ham xususiyatlar (masalan name, length) va metodlar (masalan call, apply, bind) mavjud. Buni keyingi bo'limlarda batafsil ko'ramiz.