Bewertung des JavaScript-Assessments, Teil 2

Hier sind ein paar weitere Fragen/Themen, auf die ich während meiner Wanderung durch das Land der JavaScript-Bewertung von LinkedIn gestoßen bin.

Apropos Mein Generator

Während ich JavaScript studiert habe, habe ich eine Menge Funktionen gesehen, und ich habe auch eine Menge schrecklicher Funktionen gesehen (die meisten von ihnen sind solche, die ich geschrieben habe!). Aber gerade als ich denke, dass ich endlich die heilige Kunst der JavaScript-Funktion gemeistert habe, schlägt mir JavaScript mit etwas Neuem und Komplexerem auf den Kopf. Mein letztes derartiges Erlebnis kam mir bei dieser Frage zum LinkedIn-Assessment in den Weg: „Wie heißt eine Funktion, deren Ausführung ausgesetzt und zu einem späteren Zeitpunkt wieder aufgenommen werden kann?“

Sag was, JavaScript?

Alle Funktionen, die ich bis zu diesem Zeitpunkt gesehen oder verwendet hatte, liefen einfach direkt durch ihren Code. Um die „Go to Jail“-Karte von Monopoly zu paraphrasieren, gingen sie direkt von Anfang bis Ende, ohne an Go vorbeizukommen und ohne 200 Dollar zu sammeln. Es stellt sich jedoch heraus, dass JavaScript eine Funktion hat, die tatsächlich Go passieren, eine Pause einlegen, 200 Dollar einsammeln und schließlich im Gefängnis landen kann.

Hier sind die möglichen Antworten auf die Frage:

  • Pfeilfunktion
  • Promise-Funktion
  • Generatorfunktion
  • Async/Await-Funktion

Ok, heben Sie Ihre Hand, wenn Sie noch nie eine Generatorfunktion verwendet haben. (Ja, ich hebe meine Hand.) Ich behaupte daher nicht, vollständig zu verstehen, wie es funktioniert. Schauen wir uns ein extrem einfaches Beispiel an:

function* myGenerator(x) {
  yield x;
  yield x * x;
}
let g = myGenerator(5)

console.log(g.next().value)

Und wenn wir dann erneut console.log(g.next().value) ausführen ? Dieses Mal werden wir 25 bekommen. Können wir diese Linie ein drittes Mal fahren? Wir können, aber wir werden nur „undefiniert“.

Eines der ersten Dinge, die Ihnen an der Syntax einer Generatorfunktion auffallen werden, ist das * nach dem Schlüsselwort function . Unser Beispiel verwendet auch das Schlüsselwort yield , denn „[t]he yield statement pausiert die Ausführung eines Generators und gibt einen Wert zurück.“ Ein weiterer wichtiger Aspekt, den man im Auge behalten sollte, ist die Verwendung von next() , die laut Mozilla Developer Network „ein Objekt mit einer value -Eigenschaft zurückgibt, die den ausgegebenen Wert enthält, und eine done -Eigenschaft, die angibt, ob der Generator seinen letzten Wert geliefert hat, as ein boolescher Wert.“

Zur Veranschaulichung: Wenn wir console.log(g.next()) ausgeführt hätten, hätten wir dieses Objekt erhalten: {value: 5, done: false} . Ein zweites Ausführen von console.log(g.next()) hätte {value: 25, done: false} zurückgegeben . Ein drittes Mal hätte {value: undefined, done: true} zurückgegeben .

Generatorfunktionen sind iterierbar und eignen sich hervorragend für die asynchrone Programmierung. Klicken Sie auf die Links in den obigen Abschnitten, um mehr darüber zu erfahren.

Ihre Bestellung ändern?

Jetzt für etwas ein bisschen einfacher. Eine Frage zur Bewertung enthält den folgenden Code:

const dessert = { type: ‘pie’ };
dessert.type = ‘pudding’;

Welchen Wert wird dessert.type haben ? Bleibt es „Kuchen“? Zu „Pudding“ wechseln? Fehler werfen? Oder als 'undefiniert' zurückgeben? Die Frage soll wahrscheinlich Ihr Verständnis des Schlüsselworts const testen . Wenn dessert mit dem älteren Schlüsselwort var deklariert worden wäre, wüssten Sie wahrscheinlich sofort, dass die zweite Zeile des Codes den Wert von dessert.type in „pudding“ ändert. Aber wir verwenden hier const , und wie uns w3schools.com mitteilt, „können [v]ariables, die mit const definiert wurden, nicht neu zugewiesen werden.“

In diesem Fall haben wir es jedoch mit einem Objekt zu tun, nicht mit einem primitiven Datentyp. Macht das einen Unterschied? In der Tat tut es das. Auch wenn das Objekt mit const definiert ist , können seine Eigenschaften geändert werden. Daher ist dessert.type jetzt 'pudding'. (Und wenn es nach mir ginge, hätte ich es als Schokoladenpudding mit etwas Cool Whip obendrauf angegeben.)

Unär oder nicht unär? Das ist hier die Frage.

„Welche Wahl ist kein unärer Operator?“

Ich hätte die Antwort auf diese Frage nicht gewusst, ohne meinen lieben Freund Google zu konsultieren. Tatsächlich kann ich mich nicht einmal erinnern, auf den Begriff unärer Operator gestoßen zu sein, obwohl sich herausstellte, dass ich schon mehrere davon verwendet hatte. Laut Mozilla Developer Network ist eine „unäre Operation eine Operation mit nur einem Operanden“. Dazu gehören das logische NOT (!), der Dekrementoperator (- -), der Inkrementoperator (++) und das Schlüsselwort typeof .

Die vier möglichen Antworten auf diese Frage zur Bewertung lauten wie folgt:

  • Instanzvon
  • Leere
  • Art der
  • löschen

Da kommt noch mehr!

Suggested posts

Meine am häufigsten verwendeten Codierungsressourcen

Meine am häufigsten verwendeten Codierungsressourcen

Diese Woche erhielt ich eine E-Mail von einem Mitglied der täglichen E-Mail-Liste. Sie wollten wissen: Welche Ressourcen besuchen Sie täglich, wöchentlich und monatlich? Tolle Frage! Ich versuche gerne, einige Einblicke in meinen Arbeitsablauf und die wichtigsten Ressourcen, die ich verwende, mit Ihnen zu teilen.

Lit-Bibliotheksreihe – 1: Ein tiefer Einblick in die lit-html-Bibliothek

Lit-Bibliotheksreihe – 1: Ein tiefer Einblick in die lit-html-Bibliothek

Der Zweck dieser Blogreihe besteht darin, tief in die Lit-Bibliothek einzutauchen und ein umfassendes Verständnis ihrer einzigartigen Funktionen zu erlangen und zu erfahren, wie sie sich von anderen Bibliotheken und Frameworks auf dem Markt unterscheidet. Die Reihe ist in drei Teile gegliedert und behandelt Themen wie 1.

Related posts

Was macht einen Podcast einflussreich?

Was macht einen Podcast einflussreich?

Letzte Woche fiel mir eine Pressemitteilung auf, die über PressGazette (eine britische Nachrichten-Website für Medien) verschickt wurde. In dem Artikel wurde angekündigt, dass Acast, das skandinavische Podcast-Hosting- und Werbeunternehmen, ein Konsortium der „wahrscheinlich einflussreichsten“ Verlage im Podcasting leiten werde.

Die Cowboy-Lüge

Wie Megakonzerne den Amerikanern eine fette Lüge verkauften

Die Cowboy-Lüge

Es ist ein strahlend goldener Morgen in den sanften Hügeln des Westens, während die ersten Sonnenstrahlen das gefrorene Gras auf den Ebenen erhellen. Eine Herde friedlicher Angus-Rinder, pechschwarz und massig, zeichnet sich vor dem Sonnenaufgang ab, während sie einen ausgetretenen Pfad entlang zu einem Ort geht, den sie alle gut kennen; die Frühstücksbar.

Verfolgen Sie jeden mit nur einer Telefonnummer | OSINT-Untersuchung

Verfolgen Sie jeden mit nur einer Telefonnummer | OSINT-Untersuchung

Sie können ein OSINT-Ermittler, ein CTF-Spieler oder einfach jemand sein, der Spam-Anrufe erhält. Jemand, der versucht, die Nummer zu bestätigen, die Sie in einer Anzeige gesehen haben.

Informationen zu Domänennamen finden

Ein Auszug aus Small, Sharp Software Tools von Brian P. Hogan

Informationen zu Domänennamen finden

Wenn Sie eine Anfrage an facebook.com stellen, sucht Ihr Computer nach dem Domänennamen, um diesen in eine IP-Adresse zu übersetzen, damit Ihr Computer diese Verbindung herstellen kann.