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
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
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
// An'anaviy:
var x = function (x, y) {
return x * y
}
// Arrow:
const x = (x, y) => x * yFunksiyalar — 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
function myFunction(a, b) {
return arguments.length
}
console.log(myFunction(4, 3)) // 2 qaytaradiObyekt 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.
