Czy możesz wyjaśnić różnicę między SSR, CSR a SSG?
Frontend
Czym jest gRPC i do czego służy?
Opowiedz o podejściach architektonicznych: FSD, modułowy monolit. Jaką architekturę wybrać dla małego MVP?
Jak obsłużyć na kliencie długotrwałą operację asynchroniczną (skanowanie pliku na wirusy, do godziny)?
Co się stanie pod względem reflow i repaint przy użyciu display:none vs visibility:hidden?
Czym są Pick i Omit w TypeScript?
Czym są keyof i typeof w TypeScript?
Jaka jest różnica między REST a GraphQL?
// Co zostanie wyświetlone w konsoli? const p1 = Promise.resolve(1); const p2 = new Promise((_, reject) => setTimeout(() => reject("Error"), 100)); const p3 = Promise.resolve(3); Promise.all([p1, p2, p3]) .then(console.log) .catch(console.error); Promise.allSettled([p1, p2, p3]).then(console.log);
Czy zmiana prywatnej metody narusza zasadę Open/Closed?
Jakie protokoły uwierzytelniania i autoryzacji znasz? Opowiedz o JWT.
```javascript console.log("Start"); setTimeout(() => { console.log("Timeout 1"); Promise.resolve().then(() => console.log("Promise inside Timeout")); }, 0); Promise.resolve() .then(() => { console.log("Promise 0"); setTimeout(() => console.log("Timeout inside Promise"), 0); }) .catch(() => console.log("Promise 1")) .then(() => console.log("Promise 2")); function foo() { Promise.resolve().then(() => { console.log("Promise 3"); foo(); }); } foo(); requestAnimationFrame(() => { console.log("RequestAnimationFrame"); }); console.log("End"); // Start // END // "Promise 0" // Promise 2 // // Timeout 1 // Promise inside Timeout // RequestAnimationFrame // Timeout inside Promise ```
Kody statusu HTTP: co oznaczają 401, 403, 500, 200, 201?
Jakie właściwości CSS powodują tylko Repaint, a jakie powodują Reflow/Layout?
Jakie rodzaje ataków na frontend znasz? Jak się chronić?
Opowiedz o zasadach SOLID
Gdzie w przeglądarce można przechowywać dane na kliencie?
Jaka jest różnica między programowaniem obiektowym a funkcjonalnym? Czym jest funkcja czysta?
// Jak można zoptymalizować ten asynchroniczny kod w pętli, aby promisy były wykonywane asynchronicznie async function processItems() { const items = [1, 2, 3]; for (const item of items) { await new Promise((resolve) => setTimeout(resolve, 100)); console.log(item); } } processItems();