Eignet sich JavaScript für Datenstrukturen und Algorithmen?
Ja, besonders wenn du Frontend- oder Full-Stack-Rollen anstrebst, denn dort ist es die Sprache deiner Interviews. Drei Eigenheiten solltest du früh kennen: Es gibt keinen eingebauten Heap und keine Queue, sort() vergleicht als Strings, solange du keinen Komparator übergibst, und jede Zahl ist ein 64-Bit-Float, deshalb brauchen Ganzzahlen jenseits von 2^53 BigInt.
Hat JavaScript einen eingebauten Heap oder eine Prioritätswarteschlange?
Nein. Du bekommst Array, Map, Set und ihre Weak-Varianten, mehr nicht. Im Interview schreibst du entweder einen kleinen binären Heap, etwa dreißig Zeilen, oder sagst, dass du einen verwenden würdest, und nennst seine Kosten; so oder so musst du vorher schon einmal einen geschrieben haben. Genau das tust du in Schritt zwei dieses Pfads.
Warum gibt [10, 9, 1].sort() [1, 10, 9] zurück?
Weil Array.prototype.sort ohne Komparator die Elemente in Strings umwandelt und sie in UTF-16-Reihenfolge vergleicht, und '10' kommt vor '9'. Sortiere Zahlen mit nums.sort((a, b) => a - b). Das ist der erste Bug, auf den die meisten stoßen, wenn sie in JavaScript Sortiercode schreiben.
Fragen Frontend-Interviews Datenstrukturen und Algorithmen ab?
Bei vielen größeren Unternehmen ja: meist ein oder zwei Runden zu Arrays, Hash-Maps, Bäumen und Graphtraversierung, in JavaScript, neben den UI- und Systemdesign-Runden. Kleinere Unternehmen setzen eher auf praktische Aufgaben. So oder so trennt das Wissen, dass ein Lookup in einer Map konstante Zeit braucht und eine verschachtelte Schleife über zwei Listen nicht, eine funktionierende Antwort von einer schnellen.
Welche Kurse auf diesem Pfad werden nicht in JavaScript unterrichtet?
Drei: Dynamische Programmierung und die Python-Interviewreihe werden in Python unterrichtet, Bitmanipulation in C++. Sie sind nach den Schritten aufgeführt, jeweils mit einem Link, der den Kurs in seiner eigenen Sprache öffnet. JavaScript hat dieselben bitweisen Operatoren, plus >>>, wendet sie aber auf 32-Bit-Ganzzahlen an, was du beim Übertragen eines Tricks im Kopf behalten solltest.
Muss ich JavaScript können, bevor ich mit diesem Pfad anfange?
Mindestens Funktionen, Arrays, Objekte und Klassen. Wenn das neu für dich ist, behandelt Coddys JavaScript-Kurs es zuerst, kostenlos, und dieser Pfad setzt dort an, wo er endet.