Funksiyalar testi
O‘zingizni sinab ko‘ring!
Bu viktorina asosiy funksiyalar viktorinasiga asoslanadi.
U this, call(), apply(), bind(), closure’lar va funksiyaga havolalar mavzulariga e’tibor qaratadi.
Agar bilimlaringizni yangilab olishingiz kerak bo‘lsa, avval asosiy testni sinab ko‘ring:
1-savol
person.getName() nima qaytaradi?
const person = {
name: "John",
getName: function() {
return this.name;
}
};
person.getName();
- A. "John"
- B. undefined
- C. "person"
2-savol
getName() ni shunday chaqirishda buning qiymati nima?
const getName = person.getName;
getName();
- A. Bu hali ham shaxs obyektidir
- B. Bu Function qanday chaqirilishiga bog‘liq
- C. U har doim undefined bo‘ladi
3-savol
Qaysi qator getName funksiyasini this sifatida person bilan to‘g‘ri chaqiradi?
const person = { name: "John" };
function getName() { return this.name; }
- A. getName(person)
- B. getName.call(person)
- C. getName.apply = person
4-savol
Call() va application() o‘rtasidagi asosiy farq nima?
- A. call() qiymat qaytaradi, apply() esa qaytarmaydi
- B. call() argumentlarni ro‘yxat sifatida, apply() esa massiv sifatida qabul qiladi
- C. apply() call()’dan tezroq ishlaydi
5-savol
Ushbu kod nimani qaytaradi?
function add(a, b) {
return a + b;
}
add.apply(null, [4, 5]);
- A. 9
- B. [4, 5]
- C. null
6-savol
bind() nima qiladi?
- A. Funksiyani darhol chaqiradi
- B. Qat’iy belgilangan this qiymatiga ega yangi funksiya yaratadi
- C. Funksiyani strelka funksiyasiga aylantiradi
7-savol
GetJohn-da nima saqlanadi?
function greet() {
return "Hello " + this.name;
}
const person = { name: "John" };
const getJohn = greet.bind(person);
- A. "Hello John" stringi
- B. Yangi funksiya
- C. person obyekti
8-savol
Ushbu kod ikkinchi chaqiruvda nimani qaytaradi?
function counter() {
let count = 0;
return function() {
count++;
return count;
};
}
const c = counter();
c();
c();
- A. 1
- B. 2
- C. 0
9-savol
Qaysi fikr closure’ni eng yaxshi tavsiflaydi?
- A. Darhol ishga tushadigan funksiya
- B. O‘zgaruvchilarni tashqi doirasidan eslab qoladigan funksiya
- C. Har doim obyektni qaytaradigan funksiya
10-savol
Funksiyani uzatish va funksiyani chaqirish o‘rtasidagi farq nima?
function sayHello() { return "Hello"; }
function run(fn) { return fn(); }
run(sayHello);
- A. sayHello uzatiladi, sayHello() chaqiriladi
- B. sayHello() uzatiladi, sayHello chaqiriladi
- C. Hech qanday farq yo‘q
11-savol
IIFE nima uchun ishlatiladi?
- A. Kod bajarilishini kechiktirish uchun
- B. Xususiy ko‘rinish sohasini (private scope) yaratish uchun
- C. Kodni avtomatik takrorlash uchun
Answers
1-savol
Javob: A
Tushuntirish: Obyekt usulida bu egalik obyektiga ishora qiladi.
2-savol
Answer: B
Tushuntirish: Usul oddiy funksiya sifatida chaqirilsa, bu endi obyekt emas.
3-savol
Answer: B.
Tushuntirish: call() funksiyani tanlangan bu qiymati bilan chaqiradi.
4-savol
Answer: B.
Tushuntirish: Ikkalasi ham this qiymatini belgilaydi, lekin argumentlarni turlicha uzatadi.
5-savol
Javob: A.
Tushuntirish: Massiv qiymatlari funksiya argumentlariga aylanadi.
6-savol
Answer: B.
Tushuntirish: bind() keyinroq chaqirishingiz mumkin bo‘lgan yangi funksiyani qaytaradi.
7-savol
Answer: B.
Tushuntirish: bind() funksiyani chaqirmaydi, yangi funksiyani qaytaradi.
8-savol
Answer: B.
Tushuntirish: The inner function remembers hisoblash (closure).
9-savol
Answer: B.
Tushuntirish: Closure’lar tashqi funksiya ishini tugatgandan keyin ham funksiyalarga ko‘rinish sohasini eslab qolish imkonini beradi.
10-savol
Javob: A.
Tushuntirish: sayHello — funksiyaga havola. sayHello() esa funksiyani bajaradi.
11-savol
Answer: B.
Tushuntirish: IIFE’lar global o‘zgaruvchilardan qochish uchun keng qo‘llanilgan.
Test natijasi
Agar siz ko‘p savollarga to‘g‘ri javob bergan bo‘lsangiz, rivojlangan funksiya tushunchalarini tushunasiz.
Agar yo‘q bo‘lsa, kengaytirilgan boblarni ko‘rib chiqing va qaytadan urinib ko‘ring.
Murakkab funksiyalar bo‘limiga qaytish
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
