Was sind gute Fragen, um festzustellen, ob der Bewerber wirklich ein Pro-JavaScript-Entwickler (Browserseite) ist?
Fragen, die unterscheiden können, ob jemand kein Ad-hoc-JavaScript-Programmierer ist, sondern wirklich professionelle JavaScript-Entwicklung durchführt, objektorientiert, wiederverwendbar und wartbar.
Bitte geben Sie Antworten , damit ein fortgeschrittener und Ad-hoc-JavaScript-Programmierer jemanden interviewen kann, der mehr Erfahrung hat. Wenn ich Antworten auf einige dieser fortgeschrittenen Fragen finde, entgeht mir dies. Bitte vermeiden Sie offene Fragen .
Bitte bewahren Sie eine Interviewfrage / -antwort pro SO-Antwort auf, um eine bessere Leseerfahrung und eine einfachere Interviewvorbereitung zu erzielen.
javascript
WooYek
quelle
quelle
Antworten:
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:
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
window
Objekt, 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 vsvar
vsfunction
) undundefined
.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:Und sie sollten es auf Ihrem Array wie folgt aufrufen (Kontext für
apply
kann alles sein, was ich normalerweisenull
in diesem Fall verwende):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 .
quelle
Grundlegende JS-Programmierung
Scope of variable
Associative Array
? Wie benutzen wir es?OOPS JS
Difference between Classic Inheritance and Prototypical Inheritance
difference between private variable, public variable and static variable
? Wie erreichen wir das in JS?add/remove properties to object
in der Laufzeit?inheritance
?extend built-in objects
?extending array is bad idea
?DOM und JS
Difference between browser detection and feature detection
DOM Event Propagation
Event Delegation
Event bubbling V/s Event Capturing
Sonstiges
Graceful Degradation V/s Progressive Enhancement
quelle
Fragen Sie nach "diesem". Dies ist eine gute Frage, die ein echter Test für JavaScript-Entwickler sein kann.
quelle
(Ich nehme an, Sie meinen browser-seitiges JavaScript)
Fragen Sie ihn, warum es trotz seiner unendlichen Kenntnisse in JavaScript immer noch eine gute Idee ist, vorhandene Frameworks wie jQuery, Mootools, Prototype usw. zu verwenden.
Antwort: Guter Code für Codierer, gute Wiederverwendung von Codierern. Tausende von Arbeitsstunden wurden in diese Bibliotheken gesteckt, um DOM-Funktionen von browserspezifischen Implementierungen zu entfernen. Es gibt keinen Grund, die verschiedenen DOM-Kopfschmerzen des Browsers selbst durchzugehen, um die Korrekturen neu zu erfinden.
quelle
Fragen Sie sie, wie sie sicherstellen, dass ihre Seiten weiterhin verwendet werden können, wenn der Benutzer JavaScript deaktiviert hat oder JavaScript nicht verfügbar ist.
Es gibt keine einzig wahre Antwort, aber Sie suchen nach einer Antwort, die über einige Strategien zur progressiven Verbesserung spricht .
quelle
Fragen Sie, wie versehentliches Schließen Speicherlecks im IE verursachen kann.
quelle
Fragen Sie "Welches Unit-Test-Framework verwenden Sie? Und warum?"
Sie können entscheiden, ob die tatsächliche Verwendung eines Testframeworks wirklich erforderlich ist, aber das Gespräch kann Ihnen viel darüber sagen, wie kompetent die Person ist.
quelle
Fortgeschrittene Programmierer sollten ihre Werkzeuge technisch beherrschen.
Wenn er die oben genannten Fragen zum Bildschirm des technischen Telefons bestanden hat, lassen Sie ihn an Ort und Stelle etwas Dummes skizzieren, wie einen Ajax-URL-Shortner. dann grillen Sie ihn auf seinem Portfolio. Kein erstaunliches Portfolio = Zwischenentwickler in diesem Bereich und nicht der Typ, den Sie für Ihr glänzendes neues Projekt verantwortlich machen möchten.
quelle