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 .