Frontend
// Είναι απαραίτητο να υλοποιηθεί η μέθοδος groupBy, που επεκτείνει τις τυπικές μεθόδους των πινάκων. // Η μέθοδος πρέπει να επιστρέφει μια ομαδοποιημένη έκδοση του πίνακα – ένα αντικείμενο, // στο οποίο κάθε κλειδί είναι το αποτέλεσμα της εκτέλεσης της συνάρτησης fn(arr[i]), // και κάθε τιμή είναι ένας πίνακας που περιέχει όλα τα στοιχεία του αρχικού πίνακα με αυτό το κλειδί.
Τι θα αλλάξει αν ορίσουμε το debounce ως βέλος λειτουργίας; Πώς περνούν τα επιχειρήματα μέσω του τελεστή rest (τρεις τελείες);
Έχετε εργαστεί με κάτι πέρα από το React stack;
Πώς λειτουργούν μαζί τα useMemo, useCallback και React.memo; Γιατί είναι σημαντικό να τυλίγουμε τις λειτουργίες σε useCallback κατά την μεταβίβαση σε ένα παιδικό συστατικό τυλιγμένο σε React.memo;
Υπάρχει ένα βαρύ πακέτο CSS 2 megabyte. Τι μπορούμε να κάνουμε για να ελαφρύνουμε την απόδοση και να κάνουμε την κατασκευή της σελίδας ομαλή;
Ποια είναι η εμπειρία σου με το FSD (Feature-Sliced Design); Πιστεύεις ότι αυτό είναι απαραίτητο για όλους;
Για να ξεκινήσουμε, θα μπορούσατε να μου πείτε λίγα πράγματα για την εμπειρία σας στη συγγραφή αυτοματοποιημένων δοκιμών, ιδιαίτερα μονάδων και ολοκληρωμένων δοκιμών; Ευχαριστώ που το μοιραστήκατε. Έχετε επίσης εργαστεί με πλαίσια δοκιμών όπως το Playwright;
Αυτό γίνεται με React; Ποιες τεχνολογίες και βιβλιοθήκες χρησιμοποίησες για τις φόρμες; Υπήρχε επικύρωση εκεί;
const func = obj.sayHi() const boundFuns = func.bind(obj) boundFuns() ------------------- const submit = (el) => () => { log(el); } arr.map(el => <button onClick={submit(el)}/>) const param = useMemo(() => a + b) return <Child value={param} />
Έλαβες έναν κωδικό για ανασκόπηση — τι δεν είναι βέλτιστο εδώ;
Μιλήστε για μια πολύπλοκη μορφή με πάνω από 50 πεδία: πώς χτίσατε την αρχιτεκτονική, τη δυναμική και τη δουλειά με τα ενσωματωμένα δεδομένα;
Ποιοι τύποι δεδομένων υπάρχουν στη JavaScript; Πώς διαφέρουν τα primitives από τα αντικείμενα; Πώς αποθηκεύονται στη μνήμη;
Ποια είναι η διαφορά μεταξύ του ελέγχου 'key in result' και 'result.hasOwnProperty(key)'?
Τι είναι το Type Guard στο TypeScript;
/* * Συνάρτηση που μιμείται την αίτηση δεδομένων από το backend. * Το backend έχει περιορισμό RPS και θα αποτύχει, * αν ο αριθμός των παράλληλων αιτημάτων υπερβαίνει το MAX_PARALLEL_REQUESTS. */ function requestData(id: number): Promise<string> { parallelRequests++; if (parallelRequests > MAX_PARALLEL_REQUESTS) { throw new Error("Πάρα πολλά παράλληλα αιτήματα"); } return new Promise((res) => { setTimeout(() => { parallelRequests--; return res(`${id * 2}`); }, Math.floor(Math.random() * 2000)) }); } function prepareData( ids: number[], maxParallelRequests: number, ): Promise<string[]> { /* * TODO: υλοποιήστε την αίτηση όλων των δεδομένων, * χρησιμοποιώντας όχι περισσότερες από maxParallelRequests * παράλληλες συνδέσεις. */ }
Μίλησέ μου για τους τρόπους διατήρησης του πλαισίου στο JavaScript: bind, call, apply. Πώς διαφέρουν;
Υπήρξαν συγκρούσεις στυλ μεταξύ μικρο-frontend; Πώς οργανώθηκε η εργασία με τα στυλ και με τι τα γράψατε;
Τι είναι τα γενικά στο TypeScript;
Πώς μπορεί κανείς να αναλύσει JSON με ροή, διαχωρίζοντας την επεξεργασία σε τμήματα, ώστε να μην μπλοκάρει το κύριο νήμα; Με τι μπορεί να ξεκινήσει την επεξεργασία του επόμενου τμήματος, ώστε να μην καθυστερεί η σελίδα (π.χ., requestIdleCallback, γεννήτορες);
Τι συμβαίνει μετά το χρήστη εισάγει το URL στο πρόγραμμα περιήγησης και πατάει Enter, μέχρι τη στιγμή που αποδίδεται η τελική σελίδα;