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.