Dumme Javascript-Interviewfragen
Ich bin nicht direkt gegen technische Fragen. Ich denke, es ist eine der Möglichkeiten, wie man sich ein Bild von den technischen Fähigkeiten des Kandidaten machen kann. Ich bevorzuge eher eine Fachdiskussion als ein strenges Tech-Interview. Aber lassen Sie mich eine der schlimmsten Fragen von Javascript heute erklären und warum.
Bevor ich anfange, meinen Punkt zu beschreiben, lassen Sie uns ein wenig in die Geschichte von Javascript eintauchen
Es war das Jahr 1995 , entwickelt von Netscape (Brendan Eich), später setzte Mozilla die Verbesserung und Weiterentwicklung von Javascript fort. Die Idee hinter Javascript war, beim Surfen in der Online-Welt eine Art Dynamik zu erzeugen. Es wurde für einige Warnungen oder sehr einfache Animationen verwendet. Javascript wurde so entwickelt, dass es das Aussehen und Verhalten von Java hat, aber für Nicht-Programmierer einfacher zu handhaben ist. Damals gab es noch nicht einmal AJAX -> Javascript wurde nicht für Anfragen und dergleichen verwendet.
Um 1997 wurde Javascript Teil der ECMA-Standards.
2005 hatten wir die erste offizielle Version von AJAX -> das ist der Punkt, an dem die heutige Webentwicklung begann. Es war nicht mehr notwendig, die Seite zu aktualisieren, um die Daten neu laden zu können. Stellen Sie sich vor, Sie könnten plötzlich eine Art Web-App erstellen. Aber die Frage ist: War Javascript dafür bereit? Nicht wirklich. Entwickler haben sich schnell daran gewöhnt, Dinge wie IIFEE zu verwenden :
(function() {
// Code that runs in your function
var name = 'John Doe'
}
)()
console.log(name) // error as the name is not defined in this scope
IIFEE war aus heutiger Sicht im Grunde eine hackige Lösung, um eine komplexe App mit mehr .js- Dateien erstellen zu können. Wir brauchten diese Art von Lösung, weil wir sonst einen Konflikt bei der Benennung von Variablen , Funktionen usw. hätten, da Javascript eine streng funktionale Sprache ohne Klassen war.
VAR und das Heben -> Heben ist ein Verhalten, bei dem Deklarationen nach oben verschoben werden. Und in Javascript kann die Variable verwendet werden, bevor sie deklariert wird. Dies ist ein gültiges Szenario:
myVariable = ‘is this shit possible?’
var myVariable;
console.log(myVariable); // is this shit possible?
In diesem Beispiel wurde die Variable myVariable nach oben verschoben und gleichzeitig initialisiert, das ist der Grund, warum in Zeile 3 die Variable bereits den String speichert.
Und es gab so viel mehr Dinge und Probleme wie diese. Nicht zu vergessen die seltsamen Teile von Javascript, die Sie hier finden können:https://hackernoon.com/the-weird-parts-of-javascript-zxo34i8
Aber etwas hat sich bei Javascript ab Version es6 geändert
Kommen wir zurück zu unserem Hebebeispiel mit dem neuen Ansatz:
myVariable = ‘is this shit possible?’
let myVariable;
console.log(myVariable); // undefined
Javascript setzt immer noch die Deklaration der Variablen an die Spitze, aber nicht die Initialisierung. Unsere Konsole schreibt also anstelle des Strings eine undefinierte Variable.
Zusätzlich mit der Version es6 haben wir:
- Pfeilfunktionen
- Klassen
- Module
- Versprechen
- Generatoren
- let- und const-Deklarationen für Variablen
- Spread- und Rest-Operatoren
- Vorlagenliterale
- Destrukturieren
- Und vieles mehr
Was sind denn die falschen Interviewfragen?
Es war notwendig, zumindest einige dieser Beispiele zu zeigen, bevor ich anfangen konnte, meinen Standpunkt zu verdeutlichen.
Stellen Sie sich vor, Sie sind ein neuer Entwickler und beginnen, Javascript zu lernen. Es ist wirklich nicht notwendig, dass Sie verstehen:
- Var
- IIFEE
- Schließungen
- Promises und ihre Verwendung (aber es ist gut, darüber Bescheid zu wissen)
Es ist jedoch absolut nicht erforderlich, die Kenntnisse der älteren Version von Javascript zu überprüfen. Das alte Javascript wurde für einen anderen Zweck gebaut als es heute verwendet wird.

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































