Frontend
De ce ai decis să îți schimbi locul de muncă acum?
Ai menționat autorizarea — ce abordări ai folosit? Ce experiență ai cu autorizarea?
Spune-mi despre cea mai interesantă sarcină sau cea mai interesantă greșeală de la unul dintre ultimele tale două locuri de muncă.
Iar ultimul proiect – câți dezvoltatori au fost în total, ce echipă a fost, cu cine a fost nevoie să comunici?
Cu ce framework-uri sau instrumente lucrezi? Folosești instrumente AI în munca ta?
Așteptări salariale — 270 de mii de ruble?
Când proiectul crește și pot fi identificate mai multe entități de afaceri (cont personal, profil, promoții), este posibil să le împărțiți în depozite separate și să le conectați ca micro-frontenduri?
Care este diferența dintre REST API și WebSocket?
Sarcină practică: scrieți o funcție care acceptă un număr și returnează o Promisiune cu rezultatul verificării pare/impare, iar în caz de eroare (nu este un număr) returnează -1.
Lămuriți: mutarea a fost de la JS/JSVue la React și TypeScript, și acum se planifică o migrare către microfrontends?
Implementați funcția promisify: aceasta primește o funcție cu callback error-first (loadScript) și returnează o nouă funcție care acceptă orice argumente, adaugă un callback error-first și înfășoară apelul într-un Promise.
Ce este de preferat pentru stocarea datelor după cheie: Map sau un obiect obișnuit? Care sunt avantajele Map?
Vorbește despre variabilele var, let, const: domenii de vizibilitate, hoisting, zona moartă temporară.
Cum să corectați re-renderizările excesive astfel încât, la clic pe 'Rerender', să fie re-renderizat doar App, iar la introducerea textului, doar Parent (fără Child)?
let a = 5; setTimeout(function timeout() { //macro console.log(a); a = 10; }, 0); let p = Promise.resolve().then(data => { console.log(a); a = 25; resolve(); }).then() console.log(a); // 5 25 25
Ce se poate configura în ESLint și ce plugin-uri sau configurații sunt utilizate?
Explicație clară, Dmytro—bune utilizări ale delegării și verificărilor "cel mai apropiat"; fluxul tău este ușor de urmărit. Când spui că gestionezi tastatura "în același mod", poți să-mi explici exact care taste suporti și cum previi ca focusul să ajungă pe linkuri dezactivate?
Ai menționat dezvoltarea unei biblioteci de componente UI-kit reutilizabile bazată pe Angular Material. Există o diferență fundamentală între componentele bibliotecii și componentele multifuncționale obișnuite ale aplicației? De la ce se poate renunța în componentele obișnuite, dar nu în cele ale bibliotecii?
Nu știi în ce specializare este [nume] — frontend, backend sau DevOps — și care este rolul său în companie?
// Este necesar să implementați metoda groupBy, care extinde metodele standard ale array-urilor. // Metoda trebuie să returneze o versiune grupată a array-ului — un obiect, // în care cheile sunt rezultatele apelului funcției fn(arr[i]) pentru fiecare element, // iar valorile sunt array-uri care conțin toate elementele array-ului original cu această cheie. // cod aici // Exemplul 1 const array1 = [ { id: 1 }, { id: 1 }, { id: 2 } ]; const fn = (item) => item.id; console.log(array1.groupBy(fn)); // { // 1: [{ id: 1 }, { id: 1 }], // 2: [{ id: 2 }] // } // Exemplul 2 const array2 = [1, 2, 3]; console.log(array2.groupBy(String)); // { // "1": [1], // "2": [2], // "3": [3] // } // Exemplul 3 const array3 = [1.3, 0.5, 1.4]; console.log(array3.groupBy(Math.round)); // { // 1: [0.5, 1.4], // 3: [1.3] // }