Il existe une fonction customMap qui fait presque la même chose qu'une map normale d'un tableau, mais elle n'est pas typée. Il faut la typer de manière à ce qu'à la cinquième ligne, ce soit un tableau de chaînes, et à la septième, un tableau de nombres.
Frontend
Aimais-tu travailler avec Redux en tant que gestionnaire d'état pour des formulaires complexes?
Connais-tu la métrique FCP (First Contentful Paint) ? Supposons que nous avons une application React — un réseau social avec rendu côté serveur, et il y a un problème : lorsque l'utilisateur accède directement à un profil, un écran blanc reste affiché longtemps. Peux-tu décrire les étapes — ce qui se passe du moment où l'utilisateur appuie sur Entrée jusqu'à l'apparition du premier contenu ?
Parle-moi un peu de toi, de ce qui t'intéresse en programmation, de ta dernière expérience, peut-être as-tu fait des choses difficiles.
Comment implémenterais-tu la mise en cache côté client?
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)
Complexité supplémentaire de la tâche avec memoize : faire en sorte que la fonction memoize reçoive en second argument la durée de vie du cache en millisecondes, après laquelle le cache est invalidé.
Il y a du code — il faut comprendre ce qu'il fait, faire une revue de code : quels sont les problèmes et ce qui peut être amélioré.
Comment fonctionne la mise en cache des ressources dans le navigateur : comment le navigateur décide-t-il de prendre depuis le cache ou de recharger, et comment gérer cela ? Quelles sont les méthodes de mise en cache, y compris Service Worker ?
Avez-vous entendu parler du helper Promise.withResolvers qui est récemment apparu en JavaScript ? Vous devez écrire son équivalent à la place de la deuxième ligne.
Quelle est votre opinion sur la méthodologie FSD (Feature-Sliced Design) ?
Peux-tu nommer quelques avantages et inconvénients de Redux?
Il y a une liste de 5000 produits sur la page, la page lag beaucoup. Le business demande de faire quelque chose à ce sujet. Que proposes-tu?
Que se passe-t-il si on met l'attribut async sur un script dans le head ? Quelle est la différence entre async et defer ?
Sur la page des amis et dans le messager, des informations similaires sur les utilisateurs sont affichées. Il y a deux options : stocker les utilisateurs dans des slices locales de chaque fonctionnalité ou dans un store global. Quels sont les avantages et inconvénients d'un store global dans ce cas ?
Parlez de vos expériences professionnelles précédentes — qu'avez-vous fait d'intéressant?
Comment peut-on obtenir des données d'un slice d'une autre fonctionnalité (par exemple, le slice des utilisateurs) sur la page d'un utilisateur spécifique, sans violer les frontières entre modules et sans faire de requête inutile?
Quelles alternatives à Redux connais-tu et pourquoi n'ont-elles pas ses avantages ? Pourquoi Redux est-il bien testé alors que les contextes ne le sont pas ?
#Formulaire d'inscription React 1. Expliquez comment fonctionne StateProvider, partagez vos pensées avec l'intervieweur. 2. Regardez /src/api/mock, expliquez comment cela fonctionne. 3. Vérifiez la couleur du SubmitButton et corrigez-la. 4. Implémentez la validation du formulaire client dans le composant Signup. (\*\*) Gardez à l'esprit la tâche numéro 9. Règles: - Les champs Nom d'utilisateur, Email, Mot de passe et Répéter le mot de passe doivent comporter au moins 6 caractères; - Le mot de passe doit correspondre à Répéter le mot de passe; - La validation doit être effectuée lors du clic sur "S'inscrire"; - Les champs avec des valeurs invalides doivent être marqués (props error et helperText); 6. La réponse de l'API peut contenir une erreur qui doit être affichée à l'utilisateur près du champ correspondant. 7. Assurez-vous que le composant UserName affiche le nouveau nom d'utilisateur après une soumission réussie. 8. Implémentez le nouveau composant SignupSuccess. Il doit être affiché à la place du formulaire d'inscription. 9. Implémentez la validation côté serveur pour les champs appropriés.
Peux-tu brièvement parler de ta dernière expérience et de ce que tu attends d'un nouveau travail, ce que tu recherches dans un nouveau poste?