Frontend
Σε ποιο στάδιο του κύκλου ζωής είναι καλύτερο να κάνετε ένα αίτημα στο backend;
console.log(1) setTimeout(() => { console.log(2) }, 10) setTimeout(() => { Promise.resolve().then(() => console.log(3)) }, 0); setTimeout(() => { console.log(4) }, 0); new Promise((_, reject) => { console.log(5) reject(6) console.log(7) }).then(() => console.log(8)) .catch(() => console.log(9)) .then(() => console.log(10)) .catch(() => console.log(11)) .then(() => console.log(12)) .then(console.log) .finally(() => console.log(13)) console.log(14)
Γιατί αποφασίσατε να μεταβείτε από το σχεδιασμό στην ανάπτυξη frontend;
Υπάρχει μια συνάρτηση foo που δέχεται επιχειρήματα τύπου any και τα επιστρέφει; Πώς να κάνετε ώστε ο τύπος του αποτελέσματος να μην είναι any, αλλά να αντιστοιχεί στον τύπο του δοσμένου επιχειρήματος; Χρησιμοποιήστε Γενικούς τύπους.
Πόσο συχνά χρησιμοποίησες το Tailwind CSS; Διηγήσου την εμπειρία σου με αυτό.
Ποια μοτίβα σχεδίασης γνωρίζετε και έχετε εφαρμόσει, ιδίως σε εφαρμογές Angular;
Μίλησέ μου για τα χαρακτηριστικά async και defer κατά την προσθήκη scripts: ποια είναι η διαφορά, πότε μπλοκάρουν το parsing HTML;
Έχεις ποτέ εμπειρία εργασίας χωρίς αναλυτή, όταν έπρεπε να καταλάβεις μόνος σου την εργασία;
Κατά την βελτιστοποίηση της φόρτωσης μιας βαριάς frontend εφαρμογής με 150 μικρά εικονίδια, πρέπει να συνδυαστούν τα εικονίδια σε ένα sprite ή να χρησιμοποιηθεί CSS-inlining όταν χρησιμοποιούνται HTTP/2 ή HTTP/3;
Πες μου για την τελευταία σου δουλειά: πώς ήταν η ομάδα και πώς ήταν οργανωμένος ο κύκλος SDLC;
Ποιες μεθόδους HTTP γνωρίζετε; Πώς διαφέρει το PUT από το PATCH;
Πώς να δουλέψετε με ασύγχρονο JavaScript; Πώς διαφέρει το async/await από τις υποσχέσεις;
Τι συμβαίνει όταν το HTML φτάνει στο πρόγραμμα περιήγησης; Ποια είναι οι μπλοκαριστικές οντότητες και πώς να εργαστούμε με αυτές;
Αν έχουμε μια μεγάλη αποθήκη που αποτελείται από πολλά μέρη, και ο γονικός σύνθετος χρησιμοποιεί ένα μέρος της κατάστασης, και ο παιδικός άλλο, πώς διασφαλίζουμε μια ανεξάρτητη επανεμφάνιση αυτών των συστατικών χωρίς να τα τυλίγουμε σε useMemo;
9. Αντιγραφή Κατά τη διάρκεια μιας εξέτασης, ο καθηγητής Floyd παρατήρησε ότι ορισμένοι φοιτητές ανταλλάσσουν σημειώσεις. Αρχικά, ήθελε να τους δώσει όλους βαθμό 2, αλλά ο καθηγητής ήταν ευγενικός και αποφάσισε να χωρίσει τους φοιτητές σε δύο ομάδες: αυτούς που επιτρέπουν την αντιγραφή και να δώσει μόνο στην πρώτη ομάδα βαθμό 2. Ο καθηγητής έχει καταγράψει όλα τα ζευγάρια φοιτητών που αντάλλαξαν σημειώσεις. Είναι απαραίτητο να καθοριστεί αν μπορεί να χωρίσει τους φοιτητές σε δύο ομάδες έτσι ώστε κάθε ανταλλαγή σημειώσεων να πραγματοποιείται από φοιτητή μιας ομάδας σε φοιτητή της άλλης ομάδας. Μορφή εισόδου Στην πρώτη γραμμή βρίσκονται δύο αριθμοί N και M — ο αριθμός των φοιτητών και ο αριθμός των ζευγαριών φοιτητών που αντάλλαξαν σημειώσεις (1 ≤ N ≤ 10^2, 0 ≤ M ≤ N(N-1)/2). Στη συνέχεια, σε M γραμμές, περιγράφονται τα ζευγάρια φοιτητών: δύο αριθμοί που αντιστοιχούν στους αριθμούς των φοιτητών που αντάλλαξαν σημειώσεις (η αρίθμηση των φοιτητών ξεκινά από 1, κάθε ζευγάρι φοιτητών αναγράφεται όχι περισσότερο από μία φορά). Μορφή εξόδου Πρέπει να εκτυπωθεί η απάντηση στην εργασία του καθηγητή Floyd. Αν είναι δυνατό να χωρίσει τους φοιτητές σε δύο ομάδες, εκτυπώστε YES; διαφορετικά, NO.
Έχετε κατανοήσει πώς λειτουργεί το Zustand κάτω από την κουκούλα;
Το αίτημα OPTIONS αποστέλλεται σε κάθε περίπτωση σε cross-domain αίτημα ή μόνο όταν είναι απαραίτητο; Ποια είναι η διαφορά μεταξύ απλών και σύνθετων αιτημάτων σε αυτό το πλαίσιο;
Εκτελέστε νοητικά τη δείχνεται λειτουργία: τι θα εμφανιστεί στην πρώτη κλήση και γιατί; Πώς να διορθώσετε τον κώδικα για να λαμβάνετε μια ακολουθία αριθμών;
Έγινε ένα σφάλμα στην παραγωγή, πρέπει να το διορθώσεις άμεσα, αλλά το branch dev έχει ήδη προχωρήσει πολύ με νέες λειτουργίες. Πώς θα ενεργούσες;
Δώστε ένα παράδειγμα της αρχής Ανοιχτό/Κλειστό στην ανάπτυξη frontend, για παράδειγμα, μέσω render props.