Frontend
Votre expérience principale est-elle avec Vue 2 ou Vue 3 ?
Comment se protéger contre une situation où dans le localStorage, une clé contient un JSON non valide?
Par défaut, le JSON du backend a le type any. Comment se protéger contre cela et pourquoi est-ce important?
function cloneDeep(something: Cloneable): Cloneable { /* * TODO: implémenter une copie profonde sans JSON.parse/stringify */ return JSON.parse(JSON.stringify(something)); } function assertDeep(a: Cloneable, b: Cloneable) { if (JSON.stringify(a) !== JSON.stringify(b)) { console.error("Pas OK"); } console.log("OK"); } const obj: Cloneable = { a: 1, b: true, c: "bonjour", d: { there: "are", some: ["properties"] }, e: {}, f: [(), (), { key: { value: [1, 2, "3", "four"] } }], g: [] }; assertDeep(obj, cloneDeep(obj));
Comment structurerais-tu l'échange d'informations entre le backend et le frontend par couches (architecturalement) ?
Quels méthodes d'itération de tableaux connais-tu?
Publiez-vous vous-même sur des ressources similaires?
Pour un objet avec une fonction flèche qui affiche this.name, déterminez ce qui sera affiché et expliquez le comportement de this dans une fonction flèche.
Comment lire un fichier de 20 Go si j'ai seulement 10 Go de RAM?
Pourquoi Promise 1 et Promise 2 s'exécutent-ils dans cet ordre ? Comment la boucle d'événements traite-t-elle les files de micro-tâches et de macro-tâches ?
Avec quels validateurs de formulaires avez-vous travaillé?
Parlez-moi des principes de la POO. La POO est-elle applicable en JavaScript?
À quoi servent principalement les bibliothèques de validation?
À quelle étape du cycle de vie est-il préférable de faire une requête au backend?
Qu'est-ce que tu aimais le plus dans ton travail actuel?
Exercice FizzBuzz : écrire une fonction en JavaScript qui prend un tableau de nombres et retourne un tableau où les nombres multiples de 3 sont remplacés par 'fizz', ceux multiples de 5 par 'buzz', et ceux multiples de 3 et 5 par 'fizzBuzz'
Parlez des prototypes et de l'héritage par prototype en JavaScript.
Exercice 5 : Implémenter la suppression des prêts via des cases à cocher — en cochant la case d’un élément et en cliquant sur le bouton avec une croix (X), les éléments sélectionnés doivent être supprimés de la liste. Une opération groupée doit également être implémentée : la case à cocher "tout sélectionner" en haut de la liste, qui lorsqu’elle est cochée, sélectionne toutes les cases, et lorsqu’elle est décochée, désélectionne tout ; lors de la suppression via le bouton X, tous les éléments sélectionnés (via un Set avec id) doivent être supprimés, et le Set doit être vidé après la suppression.
Pourquoi choisissez-vous de faire un stage chez nous?
À quelle fréquence avez-vous utilisé Tailwind CSS ? Parlez-moi de votre expérience avec lui.