Da JavaScript eine so kleine Sprache mit unglaublicher Komplexität ist, sollten Sie in der Lage sein, relativ einfache Fragen zu stellen und anhand ihrer Antworten herauszufinden, ob sie wirklich so gut sind. Zum Beispiel lautet meine erste Standardfrage, um den Rest des Interviews zu beurteilen:
Was ist in JavaScript der Unterschied zwischen var x = 1und x = 1? Beantworten Sie so viele oder so wenige Details, wie Sie möchten.
Anfänger-JS-Programmierer haben möglicherweise eine grundlegende Antwort zu Einheimischen und Globalen. Fortgeschrittene JS-Leute sollten diese Antwort auf jeden Fall haben und wahrscheinlich den Umfang auf Funktionsebene erwähnen. Jeder, der sich selbst als "fortgeschrittener" JS-Programmierer bezeichnet, sollte bereit sein, über Einheimische, implizite Globale, das windowObjekt, den Funktionsumfang, das Anheben von Deklarationen und die Umfangsketten zu sprechen . Darüber hinaus würde ich gerne davon hören [[DontDelete]], wie man Vorrang hat (Parameter vs varvs function) und undefined.
Eine weitere gute Frage besteht darin, sie zu bitten, eine sum()Funktion zu schreiben, die eine beliebige Anzahl von Argumenten akzeptiert und ihre Summe zurückgibt. Bitten Sie sie dann, diese Funktion (ohne Änderung) zu verwenden, um alle Werte in einem Array zu summieren. Sie sollten eine Funktion schreiben, die so aussieht:
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
Und sie sollten es auf Ihrem Array wie folgt aufrufen (Kontext für applykann alles sein, was ich normalerweise nullin diesem Fall verwende):
var data = [1,2,3];
sum.apply(null, data); // 6
Wenn sie diese Antworten haben, kennen sie wahrscheinlich ihr JavaScript. Sie sollten sie dann nach nicht JS-spezifischen Dingen wie Tests, Workflows, Versionskontrolle usw. fragen, um herauszufinden, ob sie ein guter Programmierer sind .