Frontend Developer Intervyu

Real kompaniya intervyu sharoitida o'zingizni sinab ko'ring

Qolgan vaqt 60:00

🎯 O'z-o'zini baholash

Quyidagi cheklistlarni to'ldiring va o'z natijangizni baholang

📈 Umumiy ko'rsatkichlar

⏱️ Sarflangan vaqt
0 daqiqa
✅ Javob berilgan
0/15
📝 O'rtacha javob uzunligi
0 so'z

Bajarish sifati

Bilim darajasi

Yaxshilanishi kerak sohalar

Qo'shimcha eslatmalar va fikrlar

Sizning bahoingiz

0/15
Cheklistlarni belgilang

💡 Javoblar va Maslahatlar

Har bir savol uchun to'liq javoblar va foydali maslahatlar

1. Event Loop qanday ishlaydi?

Jav

ob: Event Loop - bu JavaScript'ning asinxron operatsiyalarni boshqarish mexanizmi. U quyidagicha ishlaydi:

  • Call Stack - hozirda bajarilyotgan funktsiyalar
  • Web APIs - setTimeout, fetch kabi browser API'lari
  • Task Queue (Callback Queue) - bajarilishi kerak bo'lgan callbacklar
  • Microtask Queue - Promise callbacklari (yuqori prioritet)

Ishlash tartibi:

  1. Call Stack bo'sh bo'lguncha kutadi
  2. Microtask Queue'dagi barcha tasklar ba
  3. jariladi
  4. Task Queue'dan bitta task olinib bajariladi
  5. Rendering
  6. (agar kerak bo'lsa)

Maslahat

  • Promise'lar setTimeout'dan oldin bajariladi (microtask vs macrotask)
  • Event Loop visualizer'lardan foydalanib o'rganing (latentflip.com)
  • Intervyuda diagramma chizib tushuntiring

2. Closure nima va u qanday ishlaydi?

Javob: Closure - bu funksiya o'zining tashqi scope'idagi o'zgaruvchilarga kirish huquqiga ega bo'lgan holat. Tashqi funksiya tugagandan keyin ham ichki funksiya tashqi o'zgaruvchilarga kirishda davom etadi.

function outer() { let count = 0; return function inner() { count++; return count; } } const counter = outer(); console.log(counter()); // 1 console.log(counter()); // 2

Qo'llanilishi

  • Private o'zgaruvchilar yaratish
  • Factory funksiyalar
  • Callback'larda o'zgaruvchilarni saqlash

3. Promise va async/await orasidagi farq

Javob: Promise va async/await ikkalasi ham asinxron operatsiyalar uchun ishlatiladi:

  • Promise: .then() va .catch() metodlari orqali ishlatiladi, chain qilish mumkin
  • async/await: Sinxron kodga o'xshash yozish imkonini beradi, try/catch bilan ishlaydi

async/await ichida Promise ishlatiladi, bu faqat sintaktik sugar hisoblanadi.

// Promise bilan fetch('/api/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error)); // async/await bilan async function fetchData() { try { const response = await fetch('/api/data'); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } }

Topshiriq: Counter komponenti

import React, { useState } from 'react'; function Counter() { const [count, setCount] = useState(0); const increment = () => setCount(count + 1); const decrement = () => setCount(count - 1); const reset = () => setCount(0); return (

Count: {count}

); } export default Counter;

Kengaytirish

  • Step prop qo'shish (2, 5, 10 ga oshirish)
  • Min va max limit qo'yish
  • LocalStorage'ga saqlash
  • Animation qo'shish

Umumiy maslahatlar

  • Savolni yaxshi tushuning: Tushunmagan
  • joyingiz bo'lsa, so'rang
  • Ovoz bilan o'ylang: Intervyu oluvchiga fikrlash jarayoningizni ko'rsating
  • Kod yozishdan oldin plan tuzing: Algoritm haqida gapiring
  • Edge case'larni unutmang: Empty array, null, undefined
  • Test qiling: Kod ishlashini tekshiring
  • Optimizatsiyadan gapiring: Time va space complexity