129 votes

Questions d'entretien pour les programmeurs JavaScript professionnels (avec réponses)

Quelles sont les bonnes questions pour déterminer si un candidat est vraiment un développeur pro JavaScript (côté navigateur) ?

Les questions qui peuvent distinguer si quelqu'un n'est pas un programmeur JavaScript ad-hoc, mais fait vraiment du développement JavaScript professionnel, orienté objet, réutilisable et maintenable.

Veuillez fournir des réponses Pour qu'un programmeur JavaScript intermédiaire et ad-hoc puisse interviewer quelqu'un de plus expérimenté, il me sera impossible de trouver des réponses à un grand nombre de ces questions avancées. Veuillez éviter les questions ouvertes .

Veuillez garder un question/réponse d'entretien par Réponse SO pour une meilleure expérience de lecture et une préparation plus facile aux entretiens.

118voto

bcherry Points 3541

Parce que JavaScript est un langage si petit, mais d'une complexité incroyable, vous devriez être en mesure de poser des questions relativement basiques et de savoir s'ils sont vraiment si bons que ça en fonction de leurs réponses. Par exemple, ma première question standard pour évaluer le reste de l'entretien est la suivante :

En JavaScript, quelle est la différence entre var x = 1 et x = 1 ? Répondez avec autant ou aussi peu de détails que vous le souhaitez.

Programmeurs JS novices pourrait avoir une réponse de base sur les locaux et les globaux. Les programmeurs JS de niveau intermédiaire devraient certainement avoir cette réponse, et devraient probablement mentionner la portée au niveau des fonctions. Toute personne se qualifiant de programmeur JS "avancé" devrait être prête à parler des locals, des globals implicites, de la fonction window objet, fonction-scope, déclaration hoisting et chaînes de scope. En outre, j'aimerais entendre parler de [[DontDelete]] la préséance du levage (paramètres vs. var vs function ), et undefined .

Une autre bonne question est de leur demander d'écrire un sum() qui accepte un nombre quelconque d'arguments et renvoie leur somme. Demandez-leur ensuite d'utiliser cette fonction (sans modification) pour additionner toutes les valeurs d'un tableau. Ils doivent écrire une fonction qui ressemble à ceci :

function sum() {
  var i, l, result = 0;
  for (i = 0, l = arguments.length; i < l; i++) {
    result += arguments[i];
  }
  return result;
}
sum(1,2,3); // 6

Et ils devraient l'invoquer sur votre tableau comme ceci (contexte pour apply peut être n'importe quoi, j'utilise généralement null dans ce cas) :

var data = [1,2,3];
sum.apply(null, data); // 6

S'ils ont ces réponses, ils connaissent probablement leur JavaScript. Vous devriez ensuite les interroger sur des sujets non spécifiques à JavaScript, comme les tests, les flux de travail, le contrôle de version, etc. pour savoir s'ils sont un bon candidat à l'emploi. programmeur .

93voto

pramodc84 Points 788

Programmation JS de base

  • Scope of variable
  • Qu'est-ce que Associative Array ? Comment l'utiliser ?

OOPS JS

  • Difference between Classic Inheritance and Prototypical Inheritance
  • Qu'est-ce que difference between private variable, public variable and static variable ? Comment réaliser cela en JS ?
  • Comment add/remove properties to object en cours d'exécution ?
  • Comment réaliser inheritance ?
  • Comment extend built-in objects ?
  • Pourquoi extending array is bad idea ?

DOM et JS

  • Difference between browser detection and feature detection
  • DOM Event Propagation
  • Event Delegation
  • Event bubbling V/s Event Capturing

Divers

  • Graceful Degradation V/s Progressive Enhancement

24voto

Anil Namde Points 2291

Demandez à propos de "ceci". C'est une bonne question qui peut être un véritable test pour un développeur JavaScript.

17voto

Matt Points 21690

(Je suppose que vous voulez dire JavaScript côté navigateur)

Demandez-lui pourquoi, malgré sa connaissance infinie du JavaScript, il est toujours bon d'utiliser des frameworks existants tels que jQuery, Mootools, Prototype, etc.

Réponse : Les bons codeurs codent, les grands codeurs réutilisent. Des milliers d'heures de travail ont été consacrées à ces bibliothèques afin d'abstraire les capacités DOM des implémentations spécifiques des navigateurs. Il n'y a pas de raison de passer par tous les maux de tête DOM des différents navigateurs vous-même juste pour réinventer les corrections.

11voto

insin Points 19509

Demandez-leur comment ils s'assurent que leurs pages continuent d'être utilisables lorsque l'utilisateur a désactivé JavaScript ou que JavaScript n'est pas disponible.

Il n'y a pas de réponse unique, mais vous cherchez une réponse en parlant de stratégies pour Amélioration progressive .

L'amélioration progressive repose sur les principes fondamentaux suivants :

  • le contenu de base doit être accessible à tous les navigateurs
  • la fonctionnalité de base doit être accessible à tous les navigateurs
  • un balisage sémantique clairsemé contenant tout le contenu
  • la mise en page améliorée est assurée par des feuilles de style CSS liées à l'extérieur
  • Le comportement amélioré est fourni par [[Unobtrusive JavaScript|unobtrusive]], extérieurement JavaScript lié
  • les préférences du navigateur de l'utilisateur final sont respectées

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X