Frontend
თქვენ თვითონ კონფიგურირებთ მიწოდების მთელ ისტორიას (CI/CD, pipeline), თუ ამას აკეთებს ცალკეული გუნდი (Ops)?
რომელ სფეროებში მიიჩნევთ, რომ ტექნიკური უნარების მხრივ ძლიერი სპეციალისტი ხართ?
საწყისმა დეველოპერმა შექმნა ერთი დიდი useContext მთელი აპლიკაციისთვის და იყენებს მას ყველა კომპონენტში. რა პრობლემებთან გამკლავდება? რა ინსტრუმენტები დაგეხმარებათ ამ პრობლემის გადაჭრაში?
როგორ მუშაობს Map-ი საბურავზე? როგორ მუშაობენ ჰეშ-ტაბლიცები?
როგორ აღმოფხვიეთ ციკლური დამოკიდებულებები მოდულებს შორის? რომელ დონეებზე იყო ისინი?
თუ `setup` შიგნით შექმნით `setInterval`-ს ან დაამატებთ მოვლენის დამგეგმავს `window`-ზე, ისინი ავტომატურად მოიხსნება კომპონენტის დემონტაჟისას?
მითხარი CSS სელექტორების სპეციფიკაციაზე და მათი პრიორიტეტზე
ბანდლის გაყოფაში რაიმე ლოგიკა იყო? რატომ გსურთ ერთი ნაწილი ცალკე ჩანკად გახადოთ და მეორე არა?
Yup ბიბლიოთეკას ოდესმე იყენებდით? როგორ განსხვავდება სხვა ვალიდაციის გადაწყვეტილებებიდან?
რა კონკრეტული პრობლემები იპოვეთ და გადაჭარით Lighthouse-ის დახმარებით?
// Array-ების სტანდარტული მეთოდების გაფართოებისთვის აუცილებელია groupBy მეთოდის განხორციელება. // ეს მეთოდი უნდა აბრუნებდეს მასივის დაჯგუფებულ ვერსიას – ობიექტს, // სადაც თითოეული გასაღები არის გადაცემული ფუნქციის fn(arr[i]) შესრულების შედეგი, // ხოლო თითოეული მნიშვნელობა არის მასივი, რომელიც შეიცავს ყველა ელემენტს ორიგინალ მასივში ამ გასაღებით.
გეიმიფიკაციის განხორციელება რომელზე იყო დაფუძნებული: სუფთა JS, React თუ რაიმე ძრავი, როგორიცაა PixiJS?
რა არის დახურვა და რა პრობლემა შეიძლება გამოიწვიოს?
ინდექსის მაღალი და დაბალი სელექციურობა რას ნიშნავს?
თქვენი ციკლის ფარგლებში, ვინ არის პასუხისმგებელი საერთო გადაწყვეტილებაზე, რომელიც მოიცავს ცვლილებებს როგორც ფრონტენდში, ასევე ბექენდში - თავიდან ბოლომდე?
რა გირჩევთ, რომ ლეგასის პროექტის არქიტექტურა მოწესრიგდეს, учитывая, что в репозиторий заходят и фронтендеры, и бэкендеры, и AI-агенты?
რა მოხდება, თუ მომხმარებელმა დააჭირა რჩევას და შეტანის ველის ტექსტი შეიცვალა — არ დაიწყება ხომ უკვე არჩეული მნიშვნელობისთვის განმეორებითი ძიება? როგორ შეიძლება ამ პრობლემის გადაჭრა?
რა განსხვავებაა React-სა და ვანილ JavaScript-ს შორის?
განსაზღვრეთ მოცემული კოდის კონსოლში გამოსვლის სია `setTimeout`, `Promise` და სინქრონული `console.log`-ით, და ახსენით ეს Event Loop-ის მეშვეობით.
/** * `asyncAuth(callback)` ფუნქცია იღებს callback-ს, რომელში * შეიძლება გადაეცეს შეცდომა (პირველი არგუმენტი) და მონაცემები * ბექენდიდან (მეორე არგუმენტი). * asyncAuth((error, data) => {}); * * თქვენ გჭირდებათ განახორციელოთ `auth()` ფუნქცია, * რომელიც იძახის `asyncAuth()`, მაგრამ აბრუნებს Promise-ს. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * `tryAuth()` ფუნქცია იყენებს `auth()`-ს და, შეცდომის შემთხვევაში, * ახორციელებს N დამატებით მცდელობას. * თუ ყველა მცდელობა წარუმატებელია, აბრუნებს ბოლო შეცდომას. * * @returns {Promise} */ function tryAuth(n) { }