Parlez-moi de la tâche la plus intéressante ou du plus intéressant échec dans l'un de vos deux derniers emplois.
Frontend
/** * Vérifie si les parenthèses sont équilibrées dans la chaîne ou non. * Les parenthèses qui peuvent apparaître dans la chaîne: * [[{ et }]] * @param {string} str * @return {boolean} */ function parentheses(str) { const open = ['(', '[', '{']; const close = [')', ']', '}']; const stack = []; for (let i = 0; i < str.length; i++) { const letter = str[i]; if (open.includes(letter)) { stack.push(letter); } else if (close.includes(letter)) { const index = close.indexOf(letter); const lastOpenIndex = stack.length - 1; if (open[index] !== stack[lastOpenIndex]) { return false; } else { stack.splice(lastOpenIndex, 1); } } } return stack.length === 0; }
Que se passe-t-il après que l'utilisateur a saisi l'URL dans le navigateur et appuyé sur Entrée, jusqu'à ce que la page soit affichée à l'écran?
Pourquoi avoir utilisé une solution personnalisée pour les graphiques au lieu de bibliothèques prêtes à l'emploi (par exemple, Grafana) ?
Comment était organisé le CI/CD ? Utilisiez-vous le pipeline GitLab ou quelque chose de séparé ?
Quelle est la différence entre les attributs async et defer dans la balise script ? Comment influencent-ils le chargement et l'exécution de JavaScript ?
Avez-vous travaillé sur l'optimisation du chargement des pages et sur les métriques Web Vitals (LCP, FMP, FCP) ?
À quelle fréquence participiez-vous à la production et quel était votre rôle dans ce processus?
Comment avez-vous organisé les tests ? Quels outils ont été utilisés (Jest, Playwright) ?
Il y a un distributeur automatique avec des billets de dénominations données. L'utilisateur choisit le montant d'argent qu'il souhaite recevoir. Le distributeur doit rendre la somme entrée par l'utilisateur avec le moins de billets possible. Écrivez la fonction du distributeur automatique. function atm(notes, sum) { } // atm([1, 5, 50, 100], 362) => [100,100,100,50, 5, 5, 1, 1]