Une question JavaScript utile devrait révéler un modèle mental, pas récompenser une phrase mémorisée. Utilisez ces groupes pour pratiquer expliquant ce qui se passe, pourquoi il se passe, et comment vous le vérifieriez.
Comportement linguistique
- Comment la portée lexicale et la chaîne de portée affectent-elles une fermeture?
- Quand `this` dépend-il du point d’appel, et quand n’en dépend-il pas ?
- Quels bugs la conversion implicite des types peut-elle introduire ?
- Comment les prototypes soutiennent-ils la délégation?
- Qu'est-ce qui change lorsqu'un module est évalué plus d'une fois?
- Comment les descripteurs de propriété affectent-ils une API ?
- Quand un symbole serait-il utile ?
- En quoi les copies superficielles et profondes diffèrent-elles?
- Qu'est-ce qui rend deux valeurs égales dans le cadre d'opérations d'égalité différentes?
- Comment expliqueriez-vous les zones mortes temporelles ?
Async JavaScript et le navigateur
- Décrivez un tour en boucle d'événement impliquant une tâche et des microtâches en file d'attente.
- Comment une UI devrait-elle annuler une demande qui n'est plus pertinente?
- Qu’est-ce qui provoque un rejet de promesse non géré ?
- Comment limiteriez-vous la concordance pour un lot de demandes?
- Comment deux appelants peuvent-ils partager une demande en vol?
- Quand `Promise.allSettled` est-il plus utile que `Promise.all`?
- Comment empêcher des réponses obsolètes de remplacer des données récentes ?
- Qu'arrivera-t-il à une entrée cache après le rejet du chargeur ?
- Comment les minuteurs se comportent-ils dans un onglet inactif?
- Où peut apparaître une contre-pression dans un système frontend ?
Mise en œuvre et vérification
- Mettre en œuvre débonzement avec annulation.
- Implémenter les gaz et expliquer son comportement de tête et de piste.
- Créer un émetteur d'événement avec un support de désabonnement.
- Construisez un cache de requête avec TTL et une duplication en vol.
- Aplatissez les données imbriquées sans modifier l’entrée.
- Écrivez une fonction de nouvelle tentative avec une politique d’arrêt explicite.
- Mettre en place un petit calendrier des tâches avec une limite de concordance.
- Normaliser les données du serveur dans une carte d'entité.
- Créez un helper de mémorisation et décrivez ses limites d'invalidation.
- Tests de conception pour une fonction qui dépend du temps.
Débat de haut niveau
- Où placer la validation à l’exécution dans un frontend typé ?
- Comment évoluer une API client partagée sans briser les consommateurs ?
- Qu'est-ce qui doit être observé dans une couche de requête?
- Comment étudieriez-vous une longue tâche de production ?
- Quand l’utilisation d’un Web Worker est-elle justifiée ?
- Comment les limites des paquets affectent-elles le comportement d'exécution ?
- Comment concevriez-vous une dégradation contrôlée ?
- Quelles hypothèses de sécurité ne devraient jamais vivre uniquement dans le code client?
- Comment rendre la gestion des erreurs cohérente sans cacher le contexte ?
- Quelles contraintes pour le navigateur modifieraient votre architecture ?
Comment mettre en pratique les questions
- Réponse en trois passes : mécanisme, exemple concret et compromis.
- N’écrivez le code qu’après avoir présenté le contrat et les cas limites importants.
- Vérifier un cas de succès, un cas de frontière et un chemin de défaillance.
- Enregistrer les explications faibles comme sujets de pratique plutôt que de mémoriser des scripts plus longs.
- Terminez en désignant quelles preuves changeraient votre décision.
Sources primaires
Revue éditoriale
Les affirmations sur le produit ont été vérifiées par rapport à son fonctionnement actuel. Vous avez trouvé un problème ? Envoyez une correction.