Parce que JavaScript est un langage si petit, mais avec une complexité incroyable, vous devriez être en mesure de poser des questions relativement basiques et de savoir si elles sont vraiment aussi bonnes en fonction de leurs réponses. Par exemple, ma première question standard pour évaluer le reste de l'entretien est:
En JavaScript, quelle est la différence entre var x = 1et x = 1? Répondez avec autant ou aussi peu de détails que vous vous sentez à l'aise.
Les programmeurs JS novices peuvent avoir une réponse basique sur les locaux par rapport aux globaux. Les gars JS intermédiaires devraient certainement avoir cette réponse, et devraient probablement mentionner la portée au niveau de la fonction. Quiconque se qualifie de programmeur JS "avancé" devrait être prêt à parler des locaux, des globaux implicites, de l' windowobjet, de la portée de fonction, du levage de déclaration et des chaînes de portée. De plus, je serais ravi d'entendre parler de la question de la [[DontDelete]]priorité (paramètres vs varvs function) et undefined.
Une autre bonne question est de leur demander d'écrire une sum()fonction qui accepte n'importe quel nombre d'arguments et renvoie leur somme. Ensuite, demandez-leur d'utiliser cette fonction (sans modification) pour additionner toutes les valeurs d'un tableau. Ils devraient é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 (le contexte pour applypeut être n'importe quoi, j'utilise habituellement nulldans 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 leur poser des questions sur des choses non spécifiques à JS comme les tests, les flux de travail, le contrôle de version, etc. pour savoir s'ils sont un bon programmeur .