Understanding JavaScript und Typen

Understanding JavaScript und Typen

  

Problem Sie wollen arbeiten rund um die Tatsache, dass JavaScript nicht über Typen für seine Variablen. Theory JavaScript-Code deklariert hat noch keine Variablen mit einem deklarierten Typ. Der Mangel an typisierten Variablen wird deutlich, wenn Sie die Funktionen erklären. Das heißt, nicht mit eingegeben Variablendeklarationen bedeutet nicht, muss im Browser JavaScript keine Typen oder gar keine Art Sicherheit. Beginnen wir mit der einfachen Deklaration einer Funktion, wie das folgende Beispiel illustriert.

 Quelle: / website / ROOT / ajaxrecipes / javascript / expectations.html Funktion AddTwoNumbers (zahl1, zahl2) (return zahl1 + zahl2;)

Die AddTwoNumbers Funktion hat zwei Parameter, zahl1 und zahl2, und stellt zwei einzelnen Zahlen. Bei der Durchführung des AddTwoNumbers, sind die beiden Zahlen addiert, und der Wert zurückgegeben. Diese Art der Deklaration und Verwendung einer Funktion in anderen Programmiersprachen üblich. Das Ergebnis der Addition der Zahlen zahl1 und zahl2 ist an den Aufrufer zurückgegeben folgt: assertEquals (4, AddTwoNumbers (2, 2)); Die assertEquals Funktion wird verwendet, um sicherzustellen, dass, wenn die AddTwoNumbers ist mit 2 und 2 genannten Funktionen, 4 ist das Ergebnis generiert. Wenn Sie den Code ausführen, funktioniert alles wie erwartet, aber können Sie sich sicher sein, dass alles in Ordnung ist?

Die Antwort ist nein, das können Sie nicht sicher fühlen, weil einige irreführende Annahmen zu werden. AddTwoNumbers Die Funktion erklärt, zwei Zahlen, aber die Annahme, dass num1 und num2 Zahlen sind nicht zumutbar. In JavaScript werden Variablen nicht deklariert. Wenn zu einer Art zugeordnet, ist eine Variable, Typ-sichere, aber Sie wissen nicht, was die Art, bis die Variable zugewiesen ist. Aus diesem Grund im Hinblick auf die Funktion, die Art num1 und num2 sind nicht bekannt. Solution Ein sicherer Weg AddTwoNumbers zu implementieren ist wie folgt.

 Quelle: / website / ROOT / ajaxrecipes / javascript / expectations.html Funktion AddTwoNumbersDisplayTypes (zahl1, zahl2) (var wert1 = parseInt (zahl1); var val2 = parseInt (zahl2); if (isNaN (val1) | | isNaN (val2)) ( throw new Error ( "num1, (und / oder) num2 weder eine Zahl oder ein String");) info ( "AddTwoNumbersDisplayTypes", typeof (zahl1)); info ( "AddTwoNumbersDisplayTypes", typeof (zahl2)); return val1 + val2;)

In der modifizierten Umsetzung ist der parseInt-Methode, die verwendet wird, um eine Zeichenkette in eine Zahl zu konvertieren, um sowohl num1 und num2 angewendet. Das Ergebnis der parseInt ist ein Integer-Wert, num1 ermöglicht und num2 werden addiert. Die num1 und num2 Parameter überprüft, die Zahlen werden mit dem isNaN Betreiber. Der Rückgabewert der isNaN ist wahr oder falsch. Wenn weder die Werte false, dann num1 oder num2 ist keine Zahl und eine Ausnahme ausgelöst. In dieser modifizierten Ausführung, wie es scheint, dass sehr wenig Fehler machen würden. Ein Blick auf die Umsetzung der zwei Zahlen addiert, können Sie sich fragen, wie mit Hilfe eines dynamischen Sprachen wie JavaScript ist ein Vorteil gegenüber einer anderen Programmiersprache.

Die zusätzlichen Codes verwendet werden, um zu überprüfen, ob die richtigen Typen verwendet werden würde langweilig sein, wenn diese Art von Logik für alle Funktionen implementiert wurde. In anderen Programmiersprachen wie Java und C #, mit denen zwei Zahlen zusammen sicher ist völlig belanglos. Zugegeben, wenn Sie sich auf eine Vielzahl von numerischen Berechnungen durchzuführen, dann JavaScript ist wahrscheinlich nicht die am besten geeignete Programmiersprache. Aber wenn Sie sie brauchen, um eine Anwendung, um etwas zu erledigen zu schreiben, und Sie nicht möchten, Kampf mit der unteren Ebene der Details, welche Art was tut, dass JavaScript die bessere Wahl ist. Die modifizierten Source Code ist ein Beispiel des Schreibens Defensive Code, der eine gute Übung, aber nehmen Sie es nicht zu weit und ließ ihn machen Sie paranoid. Sie wollen Code, der tut, was es tun soll, und wenn nicht, sollte es ausdrücklich Fehler in anderen Worten zu generieren, möchten Sie Code, der schreit, wenn ein Fehler auftritt. Der Code, der fängt Schrei der sollte dann etwas zu tun. Beim Schreiben von Funktionen, ist das Ziel, eine Implementierung zu schreiben, hat defensiven Code angezeigt, die Erwartungen der Funktion. Beim Schreiben von Code in einer dynamischen Sprache wie JavaScript, Erwartungen und Konventionen spielen sehr wichtige Rolle. Beim Schreiben von Code unter Verwendung einer Programmiersprache wie C # oder Java, sind Programmierer erwartet, dass sie für jede Situation das funktioniert und was nicht. Lassen Sie uns daher umschreiben Neben unserer Funktion, um unsere Erwartungen umzusetzen und ein Übereinkommen Konto verwenden. Der erste Schritt besteht darin, die Tests zu schreiben und darüber nachdenken, was ist und nicht geeignet ist. Die folgende Implementierung spiegelt unsere Erwartungen.

 Quelle: / website / ROOT / ajaxrecipes / javascript / expectations.html classical_add_display_types: function () (assertEquals (4, AddTwoNumbersDisplayTypes (2, 2)); assertEquals (4, AddTwoNumbersDisplayTypes ( "2", 2)); try (AddTwoNumbersDisplayTypes (new Object (), 2); testManager.failed (); return;) catch (e) (info ( "classical_add_display_types", "Erwartete Fehler (" + e.toString () + ")");) testManager.success (); ),

Die ersten beiden assertEquals Methode ruft spiegeln die Erwartung, dass wir eine Zahl, die entweder einen String oder einen numerischen Wert erhöhen könnte. Die Erwartung der Zugabe von zwei numerischen Werten liegt auf der Hand, weil Sie in der Regel zwei Zahlen addieren. Die Erwartung, dass in der Lage, zwei Puffer zu erkennen als Zahlen ist angemessen, weil es sich um HTML-Formulare. HTML-Formular-Elemente speichern ihre Werte als Puffer. Also, wenn mathematische Operationen mit Daten aus HTML-Formular-Elemente durchführen, erwarten wir die Formeln der Umstellung vom Puffer in die numerische Werte bearbeitet. Nach der Methode fordert, dass Tests unsere Erwartungen umzusetzen, implementiert den Code unter die Ausnahme-Block etwas, das wir erwarten nicht, Arbeit.

Der Aufruf der zusätzlich mit einem Objekt, wo eine Eigenschaft des Objekts könnte ein Hinweis Zahl ist nicht etwas, was wir erwarten, dass die Zusatz-Funktion, um herauszufinden. Hier erwarten wir eine Fehlermeldung generiert. Der Code, der nicht erwartet wird, zu arbeiten, oder zumindest zu erwarten ist zu versagen, ist zu einer Ausnahme-Block eingeschlossen. Die Rolle der Erwartung ist sowohl in der Funktion und der Aufrufer der Funktion erforderlich ist, wie im Beispiel dargestellt. In JavaScript, müssen die Funktionen bestimmte Erwartungen zu erfüllen, so sollten Sie folgende Punkte beim Schreiben zu beobachten:

• Variablen werden nicht erklärt anhand der Typen, und wenn die Variablen nicht zugeordnet werden sie als typenlos.

• Einmal zugeordnet Variablen sehen, fühlen und verhalten sich wie Typen.

• Bei der Durchführung von Aufgaben, schreiben Sie Code-Blöcke, die den Erwartungen umzusetzen.

• Um es korrekt zu Erwartungen zu erfüllen, müssen Sie die Tests zu schreiben.

• Wenn die Erwartungen nicht erfüllt sind, sollte die Fehler klar sein und die sie begleitenden Nachrichten sollte keiner weiteren Erläuterung.

• Wenn Sie, welchen Typ eine Variable ist, verwenden Sie typeof überprüfen möchten. Benutzen Sie ein einfaches Objekt oder zu überprüfen.

• Bei der Umsetzung Erwartungen nicht paranoid werden und versuchen, eine Art Systems durch die Überprüfung der genauen Details der einzelnen Variablen und jeden Parameter zu erstellen.

Ein Artikel eingereicht von Sonja Lande


Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle.
Wichtig: Dieser Artikel "Understanding JavaScript und Typen" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.


Online: 476 users browsing the articles directory