VIDEO DARSLIKLAR
November 28, 2023

JavaScript Interview Questions

Dasturchi sifatida ishga kirish uchun tajribamizdan o'tgan yokida eng ko'p so'raladigan savollarni yozma va video shaklida tayorlashga qaror qildik.


Savol javob tartibi:
1. Savol qanday ko'rinishda bo'ladi.
2. Savolga qanday javob kerak.
3. Nimalardan o'zingizni to'htatishingiz kerak.
4. Ishlatilish moyihatini misollar bilan ko'rsatib berish(kerak bo'lgan hollarda).

BASICS QUESTIONS 1 ~ 99

1 - savol | JavaScript nima? β€” JavaScript Scripting yokida programming language deyiladi.
β€” JavaScript 1995-yil Barnd Each tomonidan kashf qilinadi.
β€” 1997-yil ECMA Script nimiga o'zgartiriladi. Chunki undan oldin LiveScript deb nomlangan.
β€” Barcha browserlarda to'g'ridan to'g'ri ishlaydi.

2 - savol | Single Thread nima? β€” Bir vaqtni o'zida bitta ish bajarilishiga aytiladi.
β€” JavaScript bir vaqtni o'zida faqat bitta vazifa bajara oladi.
β€” Multi thread bir vaqtni o'zida bir nechta ish bajarishga aytiladi.

3 - savol | Variable nima? β€” Malumot saqlash uchun kerak bo'ladigan nomlangan hotira hisoblanadi.
β€” Variable'ni var let const orqali belgilanadi.
β€” data type? !== variable nima?

4 - savol | Reserved keywords? β€” Rerserved keywords?
β€” var let const function ...

5 - savol | javascript data typelari nechta? β€” JS'da data typelar 8ta
β€” Ularning 7tasi primitive -> number / string / BigInt / null / undefined / Symbol
β€” Ularning 1tasi non-primitive -> Object => Function / array / object

6 - savol | Primitive va Non-primitive data turlarining farqi nimada? β€” 3-savol javobini ham qo'shib ketsa bo'ladi.
β€” primitive turdagi o'zgaruvchilar heap'da saqlanadi.
β€” non-primitive o'zgaruvchilar'ning value'si heapda, variable stackda joylashadi. image1 / image2
β€” Non primitive o'zgaruvchi yasalganda har safar yangi manzilga joylashadi
β€” Shu sabab non-primitive malumotlar taqqoslashda hech qachon bir biriga teng bo'lmaydi. Qiymatlari teng bo'lsa ham.
β€” Bu malumotlarni bilish reactda ham prop va memo'larni ishlatishda juda muhim ro'l o'ynaydi.

7 - savol | mutable va immutable data type'lari nima? β€” Primitive malumotlar immutable data typelardir. such as: string
β€” Mutable -> value'ni index orqali o'zgartirib bo'ladigan data turi. such as array, object

8 - savol | null va undefined 'ning farqi nima? β€” null -> declared variable lekin value yo'q. Array.match / getElementByID /
- Keyinchalik qiymati object qabul qiladigan malumotga null biriktirb ketgan yaxswhi.
β€” undefined -> declared variable but not assigned value. accessing object, array value which is not key or item.

9 - savol | data type'lar qanday aniqlanadi? β€” typeof variableName.
β€” Array.isArray()

10 - savol | Type Coercion nima? β€” Automatic type conversion.
β€” Implicit conversion -> coercion
β€” explicit conversion -> conversion
β€” Such as: Arithmetic operations excluding plus / in loops / comparison /

11 - savol | var, let, const farqlari nimada? β€” var global o'zgaruvchi.
β€” let scope o'zgaruvchi -> in loop / in functions
β€” const o'zgarmas o'zgaruvchi.

12 - savol | pre va post increment nima? β€” post increment -> birinchi amal bajariladi keyin qiymatni birga oshiradi.
- let i =1; console.log(i++) // 1
β€” pre increment -> birinchi qiymatni birga oshiradi keyin amal bajariladi.
- let i =1; console.log(++i) // 2

13 - savol | AND, OR, NOT nima va farqlari haqida malumot bering. β€” AND -> Malumotning barcha qisimlari to'g'ri ekanligini tekshiradi.
β€” OR -> Malumotning biron qismi qisimlari to'g'ri ekanligini tekshiradi.
β€” NOT -> Malumotning to'g'ri ekanligini tekshiradi. Inkor manosini bildiradi.

14 - savol | Qanday scope'lar bor? β€” Global Scope.
β€” Block Scope.
β€” Function Scope.
β€” Module Scope

15 - savol | Lexical environment nima? β€” Data Structure that holds identifier(variable, function, etc).
β€” Qaysi scope'da qanysi variable'ni ishlatishni vositachilik qiladi.

16 - savol | Global variable nima? β€” dasturning istalgan qismida(scope) da ishlatish mumkin bo'lgan o'zgaruvchi.
β€” Global variable var keywordi orqali belgilanadi.

17 - savol | O'zgaruvchiga var let const bermasa nima bo'ladi? β€” nomsiz variable avtomatik tarzda varni o'zlashtiradi.
β€” Yani global bo'ladi.

18- savol | Hoisting nima? β€” O'zgaruvchi va function declorationlarni yuqorida declare qilib ketish.
β€” Keyinchalik error berishini oldini olish va nimalar borligini aniqlashtirib turish uchun kk.

19 - savol | JSON nima? β€” JavaScript Object Notation.
β€” Malumot jo'natishda va qabul qilishda hajmi kichik va tez.

20 - savol | If else, ternary operator va switch farqlari nimada? β€” If else -> bir nechta holatlarni bir vaqtda taqqoslash imkonini beradi.
β€” Ternary -> Ikkala holatni ham ifodalash shart bo'lganda ishaltiladi. Ikkitadan oshiq holatda ishlatsa bo'ladi lekin tafsiya if va else ko'rinishida ishlatish.
β€” Switch -> qiymati aniq bo'lgan malumotni tekshirishda ishlatiladi.

21 - savol | Unary Operatori nima? β€” Bitta harakat, belgi, amalli operatori deyiladi.
β€” JS unary operators -> -- / ++ / ? / + / - / ! / ~
β€” Cann't be override.

22 - savol | If else da qavuslar {} qachon tushib qolishi mukin? β€” if yokida else if yokida else dan keyin faqat bir qator code bo'lsa qavs yozish shart emas.

23 - savol | == bilan === ning farqi nimada? β€” == no qatiy tenglik. Data turini tekshirmaydi.
β€” === qatiy tenglik. Yani taqqoslashda qiymatni va uning data turini ham tekshiradi.

24 - savol | Nullish operatori nima? β€” Nullish operatori β€” ??
β€” ?? dan oldin null yoki undefined kelsa keyingi amalga o'tadi.

25 - savol | Array nima? β€” Array faqatgina value'dan tashkil topgan malumotlar to'plamiga aytiladi.
β€” Array elementlariga indexlar orqali access qilsak bo'ladi.
β€” mutable data type.

26 - savol | Arrayda spread operatori nima? β€” uchta nuqta (...)
β€” Array elementlarini o'z qavusidan tashqariga chiqaradi.
β€” Malumotni update, concatenate qilishda ishlatsak bo'ladi.
β€” Arrayni elementlarini olib qolganini alohida ajratib olsa ham boladi -> [bir, ikki, ...rest]
β€” Functinon parametorida ...rest ishlatish barcha qolgan parametorlarni arrayda olib keladi.

27 - savol | Arrayda find va filter farqi nimada? β€” find birinchi ko'rgan malumotini ko'rishi bilan to'htaydi
β€” filter shartga mos kelgan barcha malumotlarni qaytaradi.
β€” find o'rnida filter ishlatish projectga katta tasir qiladi.
β€” filter ham find ham callback function qabul qiladi.

28 - savol | Arrayda sort va filter farqi nimada? β€” Sort malumotlarni joylashish o'rnini tartiblaydi
β€” filter malumotlarni mos kelganini qoldirib qolganini chiqarib yuboradi.

29 - savol | Arrayda slice va splice farqi nimada? β€” Har ikkisi ham arraydan malumot kesib oladi
β€” slice asl arrayni o'zgartirmaydi. -> slice(startIndex, lastIndex)
β€” splice asl arrayni o'zgartiradi. -> splice(startIndex, countToDelete, newItem)

30 - savol | Arrayda map va forEach farqi nimada? β€” map malmot return qiladi.
β€” forEach'da return hususiyat yo'q.

31 - savol | Arrayda desctructure nima? β€” array elementlarini nomlash.
β€” module'da ham katta ahamiyatga ega.

32 - savol | Array.from() nima? β€” array yasab beruvchi metod.
β€” parametorlari -> from(arrayLike, callback(x)).
β€” arrayLike -> array, string or iterable object.
β€” callback orqali elementlar ustida amal bajarsak bo'ladi.

33 - savol | Arrayda flat va flatMap farqi nimada? β€” flat bitta array parentidan tashqariga chiqaradi.
β€” flatMap combination of flat and map.
β€” flat param -> depth level and infinity.
β€” flatMap -> callback function

34 - savol | Qanday looplarni bilasiz? β€” for loop
β€” while loop.
β€” do while loop.

35 - savol | For va while loop farqi nimada? β€” for -> bizda aniq tugash va boshlanish nuqtasi bo'lganida.
β€” while -> tugash nuqtasi nomalum bo'lgan vaqta ishlatiladi.
β€” lekin har ikkisini ham alternatively ishlatsa bo'ladi.

36 - savol | do while va while farqi nimada? β€” while birinchi shart tekshiradi keyin amal bajaradi
β€” do while birinchi amal bajarib keyin tekshiradi.

37 - savol | Loopda break va continue farqi nimada? β€” Break loop'ni to'liq to'htatib qo'yadi
β€” continue loopning aynan amal bajarayotgan qismini o'tkazib yuboradi.
β€” Label orqali break va continue'ni inner va outer ga tasir qildirsa bo'ladi.

38 - savol | Nested Loop nima? β€” Ichma ich kelgan loop nested loop deyiladi.
β€” Loop O(n) time complexity ga ega.
β€” Nested Loop O(n^2) time complexity.
β€” Imkon qadar nested loopdan uzoqlashishimiz kerak.

39 - savol | For loopda label nima? β€” Lable loopga nom berish.
β€” Nested looplarda outer loopni to'htatish yoki davom ettirish uchun juda qo'l keladi.

40 - savol | For of va for in farqi nimada? β€” for of -> string array da malumotlarni qiymatini chiqarib beradi.
β€” for in -> . array va stringda index qaytaradi.
β€” for in -> objectda keylarini qaytaradi.
β€” for of -> objectlar bilan ishlamaydi.

41 - savol | Function nima va ularning nechta turi bor? β€” function malum bir algaritim / code'lar to'plami, uning 7ta turi bor.
β€” anonymous function / function expression -> const anonymouse = function(){...}
β€” named function / function declaration -> function funExp(){}
β€” callback function -> function boshqa function parametorida keladi.
β€” Recursive function -> o'zini o'zi chaqiradigan function
β€” High Order Function -> Yuqori tartibli function
β€” Arrow function -> const arrFun = ()=>{...}
β€” Immediately Invoked Function Expression IIFE -> (){...}()

42 - savol | Callback function nima? β€” callback function -> function boshqa function parametorida keladi.
β€” built-in callback functionlar -> array, string va boshqa data type methodlarida keladi.
β€” callback hell -> callbackni nesetd holatida olib kirib ketish ishni

43 - savol | Recursion function nima? β€” Recursive function -> o'zini o'zi chaqiradigan function
β€” Loop o'rnida ishlatish ham ishlash tezligiga tasir qiladi.

44 - savol | HOF function nima? β€” High Order Function -> Yuqori tartibli function.
β€” function boshqa functionni scope'da ishlatishiga aytiladi.
β€” example link

45 - savol | Arrow function nima va regular functionda farqlari haqida gapiring. β€” Arrow function -> const arrFun = ()=>{...}
β€” arrow functionda this ishlamaydi.
β€” arrow function gulli qavussiz yozganimizda returnga qaytadi.
β€” new keyword bilan ishlatib bo'lmaydi.
β€” apply call bind bilan ishlatib bo'lmaydi
β€” A.F da arguments parameteri yo'q / o'rniga ...rest ishlatsak bo'ladi
β€” A.F'da prototype object yo'q
β€” Generator function sifatida ham ishlatib bo'lmaydi.
β€” Duplicate bo'lgan parameter error beradi. / regular function'da 'strict mode' ishlatish kk bo'ladi.
β€” Qo'shimcha o'rganish uchun rasm va example link

46 - savol | IIFE haqida malumot bering. β€” Immediately Invoked Function Expression image link
β€” Shu bilan birga Self-Executing Anonymous Function deb ham nomlanadi.
β€” ES6 dan oldin ishlatilgan old scope function hisoblanadi.
β€” hozirda IIFE'ni oddiygina {...} orqali ifodalasa ham bo'ladi .
β€” Asosan module'ni ifodalagan. Qo'shimcha o'rganish uchun video va maqola

47 - savol | argument va parametor nima? β€” parameter -> function declare bo'lganda argument prototype bo'ladi -> function test(name, surname ){...} β€” argument -> function invoke bo'lganda beriladigan qiymat. test("webbrain", "academy").

48 - savol | default parameter nima? β€” function declare qilnayotgan vaqtda, argument berilmagan vaqtda ishlatiladigan qiymat. function test(name="webbrain"){...}

49 - savol | Shadow variable nima? β€” Inner function, outer functionda bo'lgan variable bn bir hil variable ochishi outer variable'ni shadowed qiladi.
β€” Buni to'liq tushunish uchun scope nimaligini bilish kerak.
β€” Shadowing haqida to'liq o'qish uchun blog

50 - savol | First class function nima? β€” variable'ga o'xshab keladigan functionga aytiladi.
β€” first class function == function expression.
β€” Mavzu haqida to'liq o'qish uchun blog

51 - savol | Pure va Impure function nima? β€” Pure function -> side effecti bo'lmagan function. Yani faqat o'zini scope'dagi variable ishlatadi va shunga soslangan output chiqaradi.
β€” Impure function -> side effect bo'lgan function. Yani inner function outer scopedan variable ishlatishiga aytiladi.
β€” Mavzu haqida to'liq o'qish uchun medium blog

52 - savol | Generator function nima? β€” function execution'ni continues bo'lmagan function.
β€” return / yield / next / done, value hususiyatlari bor.
β€” Mavzu haqida to'liq o'qish uchun mdn blog

53 - savol | Generator function nima? β€” function execution'ni continues bo'lmagan function.
β€” return / yield / next / done, value hususiyatlari bor.
β€” Mavzu haqida to'liq o'qish uchun mdn blog

54 - savol | Generator functionda return va yeild farqlari nima? β€” yield -> execution continue next.
β€” return -> ends the function .
β€” Mavzu haqida to'liq o'qish uchun mdn blog

55 - savol | Curry function nima? β€” function qaysiki boshqa functionga return qilgan.
β€” const test function(){ return function(){...} }
β€” Mavzu haqida to'liq o'qish uchun javascript info blog

56 - savol | Curry function vs Recursion function? β€” curry function -> boshqa functionga return qiladi.
β€” recursion function -> o'zini o'zi qayta chaqiradi.
β€” Mavzu haqida to'liq o'qish uchun javascript info blog

57 - savol | apply call bind nima? β€” function context'ga qiymat biriktirish.
β€” dexqoncha qilib aytganda functionda this contextga qiymat biriktiradi.
β€” Mavzu haqida to'liq o'qish uchun freeCodeCamp blog

58 - savol | function composition nima? β€” functionlarni birlashishidan hosil bo'lgan function.
β€” const composedFunction = x => f(g(x));
β€” Mavzu haqida to'liq o'qish uchun stackacademic blog

59 - savol | Template literals nima? β€” String ichida variable ishlatilishi. Backtic bilan kelgan holatda.
β€” `Hello, ${name}`
β€” Mavzu haqida to'liq o'qish uchun mdn blog

60 - savol | Template literals / Interpolation nima? β€” String ichida variable ishlatilishi. Backtic bilan kelgan holatda.
β€” `Hello, ${name}`
β€” Mavzu haqida to'liq o'qish uchun mdn blog

61 - savol | Single va double quote farqi nima? β€” Ishlatilishida farqi yo'q. β€” Single quote'da double quote ishlatish mumkin.
β€” Double quote'da single quote ishlatish mumkin

62 - savol | Single va double quote farqi nima? β€” Ishlatilishida farqi yo'q. β€” Single quote'da double quote ishlatish mumkin.
β€” Double quote'da single quote ishlatish mumkin

63 - savol | substring va substr farqi nima? β€” substring -> str.substring(startIndex, endIndex). β€” can alternate the index order, but the same result.
β€” substr -> str.substr(startIndex, length).
β€” deprecated!

64 - savol | includes va search farqi nima? β€” includes malumot bor yo'qligiga qarab boolean qaytaradi -> str.includes(val). β€” search qidirlgan malumotni indexini qaytaradi. Regexp bn ham ishlaydi -> str.search(regexp).
β€” Mavzu haqida to'liq o'qish uchun mdn blog

65 - savol | String'da katta va kichik harflarini sort qilishda qanday taqqoslaydi qiladi? β€” str.localeCompare(str). β€” return -1 / 0 / 1

66 - savol | Error handiling nima? β€” runtime errorlarni tutish. β€” try catch finally
β€” Error turlari -> Syntax, Reference , Type, Range

67 - savol | Promise nima? β€” deeply nested callback. β€” robust way to wrap asynchronous task .
β€” involves then catch
β€” next execution'ni kutmaydi

68 - savol | Promise vs async await nima? β€” promise chainni o'zi asynchronous. β€” async await'da to'liq function asynchronous
β€” har ikkisida ham then catch finally bor.
β€” Bu bilan promise bn async await teng degani emas.
β€” Promise'da readability qiyin, async awaitda onson
β€” Promiseda then catch bilan error handle qilinadi
β€” Async awaitda try catch bilan error handle qilinadi.
β€” More info: Ninja Code link / medium link

69 - savol | Object nima? β€” Key va value'dan tashkil topgan malumot turi. β€” array faqat item'dan tashkil topadi, objectda key biriktirilgan bo'ladi.

70 - savol | Object keylariga dynamic access haqida malumot bering. β€” Object key'lariga nuqta bilan va [] orqali kirsa bo'ladi. β€” [] - dynamic access deyiladi.
β€” keylarni variable value'si orqali ham chaqirish imkoni bo'ladi. Nuqta bilan bo'lmaydi.

71 - savol | Object Copying vs Referencing. β€” copy bo'lgan obj bir biriga bog'liq bo'ladi. Birini qiymatini o'zgartirsangiz ikkinchisiga ham tasir qiladi. let newObj = obj β€” Referencing obj bir biriga tasir qilmaydi. let newObj = structuredClone(obj) .
β€” Object.assign(target, source) -> bir objectni ikkinchisiga copy qilib o'tkazadi.

72 - savol | structuredClone nima?. β€” structuredClone() global function β€” objectdagi barcha malumotni olib yangisiga set qilish uchun ishlatsa bo'ladi.
β€” obj'ni oddiy tenglashdan farqi, addresini alohida set qiladi.

73 - savol | Object.assign() nima?. β€” Object.assign(starget, source) -> source'dagi barcha keylarni targetga copy qiladi. β€” bir hil keylardagi malumotlarni update qiladi.

74 - savol | Garbage collector nima?. β€” access qilib bo'lmaydigan malumotni xotiradan automatic tarzda o'chiradi. β€” Dasturchi tomonidan hech nima qilish shart emas.

75 - savol | Object distructure nima?. β€” Keylarni ajratib chiqarib olish {name} = obj. β€” nested ko'rinishi {info:{name}} = obj.
β€” : nuqta keyga yangi nom beradi

76 - savol | Object key bor yo'qligini qanday tekshiradi?. β€” in metodi true false qaytaradi -> 'name' in obj β€” ikkinchi yo'l -> obj.hasOwnProperty(keyName)

77 - savol | Optional chaining nima?. β€” istalgan data turini metodini chaqirayotgan vaqtda kerak bo'ladi.
β€” Agar metod data turida yo'q bo'lsa error qaytaradi.
β€” Agar optional chaining belgisini qo'ysa error o'rniga undefined qaytaradi
β€” Optional chaining bn project sinishini oldini oladi. Uning o'rniga undefined qaytaradi.
β€” let obj = undefined; obj?.name // undefined

78 - savol | Object.seal nima?. β€” Object keylari ustida qo'shimcha himoya β€” Object.seal(obj) - yangi key qo'shib bo'lmaydi
β€” bor keyni update qilsa bo'ladi
β€” keyni o'chirib yuborib bo'lmaydi.

79 - savol | Object.freeze nima?. β€” Object keylari ustida qo'shimcha himoya β€” Object.freeze(obj) - yangi key qo'shib bo'lmaydi
β€” bor keyni update qilib bo'lmaydi
β€” keyni o'chirib yuborib bo'lmaydi.

80 - savol | Object.preventExtension nima?. β€” Object keylari ustida qo'shimcha himoya β€” Object.preventExtension(obj) - yangi key qo'shib bo'lmaydi
β€” bor keyni update qilsa bo'ladi
β€” keyni o'chirib yuborsa bo'ladi.

81 - savol | Object properties flag nima?. β€” value -> qiymat yig'iladi. β€” writable -> boolean, malumotni edit qilish yoki qilmaslikni belgilaydi.
β€” enumerable -> boolean, malumotni loop qilish yoki qilmaslikni belgilaydi.
β€” configurable -> boolean, malumotni delete qilish yoki qilmaslikni belgilaydi.

82 - savol | Object flag qiymatlarini qanday o'zgartirsa bo'ladi?. β€” Object.defineProperty(obj, "keyName", { flag: value }); β€” writable -> boolean, malumotni edit qilish yoki qilmaslikni belgilaydi.
β€” enumerable -> boolean, malumotni loop qilish yoki qilmaslikni belgilaydi.
β€” configurable -> boolean, malumotni delete qilish yoki qilmaslikni belgilaydi.

83 - savol | Object setter va getter nima?. β€” setter va getter function orqali malumotni olish va update qilish un ishlatiladi β€” set changeName(prop){...} / obj.changeName = "new Name" || prop
β€” get getName(){...} / obj.getName / obj.getName() // error.

84 - savol | Raqamlarni necha xil usulda yozsa bo'ladi?. β€” general case -> 123, 12.34 β€” underscore zero's representation 100_000_000
β€” e representation, 1e2=== 100, 1e6===1,000,000

85 - savol | Integer to Binary?. β€” Number.toString(2) β€” parameter 2 o'rniga istalgan sanoq sistemasini yozsak bo'ladi.

86 - savol | Math nima?. β€” Arifmetik amallarni bajarishda yordam beradigna tayyor metodlar to'plami.
β€” methods -> abs, max, min, floor, ceil, random, sqrt, cbrt, pow.

87 - savol | Number'ning qanday metodlari bor?. β€” parseInt / parseFloat / toString / toFixed / toPrecision

88 - savol | Date objecti haqida malumot bering?. β€” date kompyuterdagi vaqtlarni ifodalash uchun ishlatiladi.
β€” default utf-8 formatda sanani qaytaradi.
β€” getHours / getMinutes / getSeconds / getYear / getFullyear ...
β€” Hafta kunlarini ifodalashda faqat 0-6 raqam qaytaradi. O'zimiz monipulatsya qilishimiz kk.

89 - savol | JSON nima?. β€” JavaScript Object Notaion.
β€” Stringni objectga, objectni stringa o'zgartirib beradi.
β€” malumot transfer qilishda tez va lightweight file.
β€” front bn backend o'rtasida fetch qilgan vaqtda ko'p ishlatiladi.

90 - savol | JSON .stringfy() haqida malumot bering. β€” stringfy obj'ni stringa o'zgartirib beradi. β€” stringify -> Object.stringfy(obj, [replacer], indetation).
β€” replacer -> object keylari, arrayda yozilgan key stringa convert bo'ladi.
β€” indent -> formatter uchun joy.

91 - savol | JSON.parse() haqida malumot bering. β€” parse object formatddagi string'ni objectga o'zgartirib beradi. β€” parse -> Object.parse(string).

92 - savol | setTimeOut nima? β€” let id = setTimeOut(callback, second). β€” callback functiondagi amallarni malum bir secund'dan keyin amalga oshiradi.
β€” id orqali xotiradagi joyni clearSetTimeOut(id) orqali o'chirib tashlash mumkin.
β€” setInterval bilan farqi, setInterval malum vaqtda qayta qayta ishlaydi, setTimeOut bir marta ishlaydi va to'htaydi.

93 - savol | setInterval nima? β€” let id = setInterval(callback, second). β€” callback functiondagi amallarni har secund qayta qayta yurgazib beradi.
β€” id orqali xotiradagi joyni clearInterval(id) orqali o'chirib tashlash mumkin.
β€” setTimeOut bilan farqi, setInterval malum vaqtda qayta qayta ishlaydi, setTimeOut bir marta ishlaydi va to'htaydi.

94 - savol | new Map nima? β€” array like object -> yani o'z ichida faqat unique value saqlaydi. β€” duplicate'larni avtomatik o'zi ochiradi.
β€” methods -> get, has, add, delete
β€” can use with forEach but not other array methods

95 - savol | new Set nima? β€” array like object -> yani o'z ichida key va value saqlaydi. β€” methods -> get, has, set, delete
β€” can use with Object.properties but not other object methods

96 - savol | new WeakMap nima? β€” new Map dan farqli ravishda WeakMap garbage collectionga tushmaydi. β€” Map istalgan qiymatni key sifatida oladi, WeakMap esa faqat object qabul qiladi.

97 - savol | new WeakSet nima? β€” new Set dan farqli ravishda WeakSet garbage collectionga tushmaydi.
β€” Set istalgan qiymatni value sifatida oladi, WeakMap esa faqat object qabul qiladi.

98 - savol | Set vs Mapnima? β€” Set -> key va value'dan tashkil topgan. Like Objet
β€” Map -> faqatgina value'dan tashkil topgan. Like Array.

99 - savol | WeakSet vs WeakMapnima? β€” WeakSet -> key va value'dan tashkil topgan. Like Objet
β€” WeakMap -> faqatgina value'dan tashkil topgan. Like Array.

Advanced Questions 100 ~ 199

100 - savol | Class nima? β€” Class object yasash uchun template vazifasini bajaradi.
β€” Objectdan farqli ravishda class'ning o'ziga tegishli funksiyalari mavjud.
β€” asosan malumotni encapsulate qilib ishlashda ishlatiladi.

101 - savol | Class constructori nima? β€” constructor class chaqrilishi bilan birinchi run bo'ladi.
β€” constructor functiondagidek parametor qabul qiladi.
β€” Meros olishda child constructor parent constructorga malumot ham jo'natadi.

102 - savol | Class getter setter nima? β€” setter va getter function orqali malumotni olish va update qilish un ishlatiladi β€” set changeName(prop){...} / class.changeName = "new Name" || prop β€” get getName(){...} / class.getName / class.getName() // error.

103 - savol | Computed name Class nima? β€” variable yoki function nomlarini variable orqali olishiga aytiladi.
β€” syntax -> [name](){...}.
β€” Ko'proq malumot olish uchun manba blog.

104 - savol | Class inheritance nima? β€” inheritance meros olish hisoblanadi..
β€” syntax -> class merosOlganClass extends otaClass { ... }
β€” Meros olgan class, uning ota classidagi barcha malumotlarni ishlatish imkoniga ega bo'ladi.
β€” Ota class child class husiyatlarini ishlata olmaydi.

105 - savol | Overriding class constructor nima? β€” meros olgan class orqali constructor yozishimiz bilan super funksiyasi yozilishi majburiy bo'ladi va superga berilgan qiymay bilan parent constructor overrida bo'ladi.
β€” syntax -> constructor(props){ super(props) }

106 - savol | parent class metodini qanday chaqiramiz? β€” meros olgan class orqali super keywordi orqali parent class methodlarini yozsak bo'ladi.
β€” syntax -> class test{ super.callParent() }

107 - savol | Classda static variable nima? β€” Odatda har safar yangi class copy yasalsa ichidagi malumotlar ham bir biriga bog'liq bo'lmagan holda copy bo'lib o'tadi.
β€” static variable esa barcha copy bolgan classlar uchun bitta bo'ladi.
β€” Ko'proq malumot olish uchun manba blog.

108 - savol | Classda static function nima? β€” Odatda har safar yangi class copy yasalsa ichidagi malumotlar ham bir biriga bog'liq bo'lmagan holda copy bo'lib o'tadi.
β€” static function esa barcha copy bolgan classlar uchun bitta bo'ladi.
β€” Ko'proq malumot olish uchun manba blog.

109 - savol | Classda mixins nima? β€” Mixin -> class inherit qilmasdan uning malumotini ishlatishga aytiladi.
β€” Malumot object prototypega biriktirilgan holda access qilinadi.
β€” syntax -> Object.assign(target.prototype, sourceClass)

110 - savol | instanceof nima? β€” instanceof object type'larini tekshirib beradi.
β€” syntax -> obj instance of Class // true.
β€” Ko'proq malumot olish uchun manba blog.

111 - savol | Built-in class nima? β€” Date / Array / Object va boshqalar
β€” Pseudo class va prototypelari bolgan barcha methodlar kiradi.

112 - savol | Module nima? β€” Bir filedagi code'larni ikkinchi fileda ishlatishga module based code deyiladi.
β€” Malumotlarni import export orqali transfer qilinadi.

113 - savol | default export nima? β€” module da export qilishni ikki hil ko'rinishi bor.
β€” export -> export { functionName, nameVar }.
β€” export default -> export default functionName.
β€” expert defaultda faqat bitta malumot jo'natsa bo'ladi
β€” export default malumotini qabul qilishda ixtiyoriy nomdan foydalansa bo'ladi.

114 - savol | export bo'lgan malumotni nomini qandat o'zgartirsa bo'ladi? β€” export bo'lgan malumot nomi qanday bo'lsa shunday import qilish shart.
β€” export -> export { functionName, nameVar }.
β€” lekin import bo'lish jarayonida ikki nuqta orqali yangi nom bersa bo'ladi.
β€” import { nameVar: newName } from './file location'

115 - savol | * import nima? β€” yulduzcha bilan import qilganda file'dagi barcha malumotlarni olib keladi.
β€” exportdagi malumotlarni to'g'ridan to'g'ri name bn chaqiriladi.
β€” defaultdagi malumot default parami orqali keladi

116 - savol | Event loop nima? β€” event loop javascriptning fundamental konsepsiyasi.
β€” event loop code'larni ishlash tartibini belgilovchi mehanizim.
β€” event loop bu doimiy biron topshiriq bor yoki yo'qligini tekshiruvchi loop.
β€” JavaScript single thread bo'lgani uchun bir vaqtni o'zidan faqat bitta topshiriq bajara oladi. Yani asinhron funksiyalarni to'g'ri ishlashi uchun ham event loop kerak bo'ladi. Event loop bo'lmaganida asinhron funksiyalar boshqa code'larni yurishini blocklab qo'ygan bo'lar edi.


117 - savol | microtask nima? β€” microtasklar -> dehqoncha qilib aytganda, o'zini ishini qiladi va event loop'ni keyingi taskgaa o'tishini taminlaydi.
β€” bajarilishi muhim bo'lgan tasklar.
β€” aksar kishilar promise va async await macrotask deyishadi, aslida esa ular micro task.

118 - savol | macrotask nima? β€” macrotasklar -> dehqoncha qilib aytganda, scope to'liq tasklarni bajarishini kutadi va keyin bajariladigan taskka aytiladi.

119 - savol | Proxy nima? β€” new Proxy objectlarni boshqaruvchi vositachi.
β€” Proxy target objectni qayta define qiladi. Bu bilan object core hususiyatlarini o'zgartiradi.
β€” Proxy'ni get, set, has va owenKeys kabi metodlari bor.

120 - savol | Proxy reflext nima? β€” Reflect proxy'ni soddalashtirilgani.
β€” reflect faqat set va get bilan ishlaydi holos (.

DOM Questions

121 - savol | DOM nima? β€” Document Object Module.
β€” HTML'dagi malumotlarni javascriptda monipulatsya qilish uchun DOM kerak.

122 - savol | DOM Selectorlari haqida malumot bering. β€” Selectorlar deb html elementini tanlab oluvchi metodlarga aytiladi.
β€” getElementByID / getElementByClass / getElementByTagsName /
β€” Query selectorlari ham bor. Ular huddi css selectorlariga o'xshaydi.

123 - savol | QuerySelectorlari haqida malumot bering. β€” Query selectorlari huddi css selectorlariga o'xshab ishlaydi.
β€” DOM selectorlaridan farqli ravishda querySelector va querySelectorAll ga bo'linadi
β€” malumotni olishda arguent sifatida id orqali olish uchun "#", class uchun " . ", tag uchun to'g'ridan to'g'ri nom yoziladi.
β€” syntax -> document.querySelector(".name") // name nomli class elementini olib keladi

124 - savol | textContent bilan innerHTML farqi nimada? β€” Har ikkisi ham elementning malumotini nazarda tutadi lekin:
β€” textContent -> faqatgina textni o'ziga tasir qiladi, tag'ga emas.
β€” innerHTML -> malumot biriktirishda tag ham yozsa bo'ladi va amalda tasir qiladi.

125 - savol | Node bilan Element farqi nimada? β€” DOM'da barcha narsa node deyiladi -> Element, attribute, text, comment, document, etc.
β€” Element node'ning malum bir turi.
β€” Element -> HTML yokida XML bo'ladi.

126 - savol | Elemetnga qanday qilib attribute set qilsa bo'ladi? β€” DOM'da attribute set qilish uchun setAttribute va classList metodlari bor.
β€” setAttribute(key, value) -> elementga istalgan turagi attribute'ni set va delete qilsa bo'ladi
β€” classList -> orqali faqat class attributeni qo'shsa bo'ladi.

127 - savol | classList metodi haqida malumot bering? β€” DOM'ga class attributeini monipulatsiya qilish uchun ishlatiladi.
β€” classList -> orqali faqat class attributeni qo'shsa bo'ladi.
β€” methods -> add, remove, replace va toggle

128 - savol | eventlar necha hil ko'rinishda biriktiriladi? β€” addEventListener.
β€” attribute eventlar -> onclick, onmove, onhover...
β€” with expression -> Element.onclick = function(){...}

129 - savol | eventlar necha hil ko'rinishda biriktiriladi? β€” addEventListener -> Element.addEventListener("click", function(){...})
β€” attribute eventlar -> onclick, onmove, onhover...
β€” with expression -> Element.onclick = function(){...}

130 - savol | Event bubbling nima? β€” nested joylashga elementni click qilgan vaqtda parent ham click bo'lishiga aytiladi.
β€” parent elementlarini eventlarini to'htatib qo'yish orqali event bubbling oldini olsa bo'ladi.
β€” stopPropagation va stopImmediatePropagation

131 - savol | Event bubbling'ni qanday oldini olsa bo'ladi? β€” stopPropagation -> barcha parent elmentlar eventini to'htatadi.
β€” stopImmediatePropagation -> birinchi parent elmentlar eventini to'htatadi.

132 - savol | Event delegation nima? β€” Multiple Eventlarni high order orqali control qilishga aytiladi.
β€” dexqoncha varianti -> hamma elementga alohida method yozmasdan bittasi orqali qolganlarini boshqarish.

133 - savol | fetch methodi nima? β€” fetch api orqali malumotlarni tutib olish uchun ishlatiladi.
β€” syntax -> fetch(api, handler).
β€” fetch malumot tutib olish, o'chirish, update qilish hususiyatlariga ega.
β€” handler -> methods, headers, body...

134 - savol | fetch status code'lari nima? β€” fetch status code'lari malumot tutib olishdagi resultat haqida malumot beradi.
β€” status code'larga qarab natija backend yoki frontend'dan xato qaytayotganligini aniqlasa bo'ladi.
β€” 200 malumot to'g'ri kelganligi / 201 malumot to'g'ri va yana bir qo'shimcha amal borligini bildiradi. 401 ro'yhatdan o'tmaganligi / 500 server bn muamo vhk..
β€” statuslar bo'yicha to'liq tanishish uchun manba blog.

135 - savol | fetch config methodlari haqida malumot bering. β€” method: post / get / delete / put / patch.
β€” headers -> object, request header hisoblanadi.
β€” body -> 100ta uzulikdagi malumot ketadi.

136 - savol | fetch headers nima? β€” fetch headers backend bilan bog'lanayotgan vaqtda qo'shimcha informatsiya berish uchun kerak bo'ladi.
β€” Content-type: "application/json" -> malumot turi
β€” Content-length: 100 -> 100ta uzulikdagi malumot ketadi.
β€” Authorization: "Bearer ${token}" -> login qilinganni tasdiqlovchi token.

137 - savol | formdata nima? β€” backendga malumot jo'natishda ishlatiladi. -> let form = new FormData([form]);
β€” asosan media file'lar jo'natganda ishlatiladi, qolgan hollarda to'g'ridan to'g'ri malumotni o'zini jo'natsa ham bo'ladi.
β€” methods -> form.append | has | get | delete | set

138 - savol | URL nima? β€” bugungi kunda url bajargan ishni oddiy string ham bajara oladi.
β€” faqatgina searchParams methodi ajralib turadi.
β€” syntax -> new URL(url, base)
β€” url -> address / base -> prefix lekin optional
β€” methods -> url.protocol | host | pathname | hash
β€” Savol bo'yicha blog post

139 - savol | searchParams nima? β€” searchParams -> URL parameteri hisoblanadi va url'ga dynamic manipulation imkonini beradi.
β€” syntax -> let param = new URL(url, base).searchParams
β€” methods -> param.get | append | delete | set | getAll | sort | has
β€” Savol bo'yicha blog post

140 - savol | localStorage nima? β€” localStorage browser hotirasi hisoblanadi.
β€” localStorage JavaScript global object.
β€” methods -> localStorage.setItem | getItem | clear | removeItem
β€” cookies ga o'xshab malumot request bn birga backendga jo'natilmaydi.
β€” Browser hotirasidan o'zimiz o'chirmagunimizcha o'chib ketmaydi, browser to'liq yopilsa ham.
β€” Browserga qarab 5-10mb joy ajratadi, har bir site uchun.
β€” Savol bo'yicha blog post

141 - savol | sessionStorage nima? β€” sessionStorage browser hotirasi hisoblanadi.
β€” localStorage JavaScript global object.
β€” methods -> sessionStorage.setItem | getItem | clear | removeItem
β€” cookies ga o'xshab malumot request bn birga backendga jo'natilmaydi.
β€” tab yopilganda xotiradagi malumotlar o'chadi.
β€” browser hotirasi 5mb
β€” Savol bo'yicha blog post

142 - savol | Cookies nima? β€” cookie browser hotirasi hisoblanadi.
β€” cookie JavaScript global object.
β€” methods -> document.cookie
β€” malumot request bn birga backendga jo'natiladi.
β€” malumot o'chishini manually belgilaymiz.
β€” browser hotirasi 4kb
β€” Savol bo'yicha blog post

143 - savol | Cookies flag nima? β€” cookie browser hotirasi hisoblanadi.
β€” cookie JavaScript global object.
β€” syntax -> document.cookie =" "
β€” cookie flags -> secure | samesite: 'strict|lax' | max-age: expireSecond | expire:'expireDate' .
β€” malumot o'chishini manually belgilaymiz.
β€” browser hotirasi 4kb
β€” Savol bo'yicha blog post

144 - savol | Memory leak nima va qachon sodir bo'ladi? β€”

Montajda davomi tayorlanmoqda...