Der Hinweis auf das Präfix Java führt dazu, dass Menschen JavaScript immer mit Java assoziieren und denken, dass JavaScript eine Teilmenge von Java ist oder ist eine Version mit schlechterer Funktionalität als Java. Es scheint, dass der Name JavaScript Verwirrung stiften soll, und diese Verwirrung führt zu späteren Missverständnissen. JavaScript wird nicht als Java interpretiert, Java ist Java. JavaScript ist eine andere Programmiersprache.
Die Syntax von JavaScript ähnelt der von Java, genau wie Java C ähnelt. Allerdings ist JavaScript keine Teilmenge von Java, genauso wenig wie Java eine Teilmenge von C ist. JavaScript leistet in Anwendungen eine bessere Leistung als Java (Oak) ursprünglich vorgesehen war.
JavaScript wurde nicht bei Sun Microsystems, dem Geburtsort von Java, sondern bei Netscape entwickelt. Es hieß ursprünglich LiveScript und der Name verwirrte die Leute nicht sehr.
Der Hinweis des Suffixes Script zeigt, dass JavaScript keine echte „Programmiersprache“ ist und zwischen ihr und einer Programmiersprache noch eine Lücke besteht. Allerdings handelt es sich dabei tatsächlich um ein berufliches Problem. Im Vergleich zur C-Sprache opfert JavaScript Leistung im Austausch für eine reichhaltigere Ausdruckskraft und Dynamik.
Die C-ähnliche Syntax von JavaScript, einschließlich geschweifter Klammern und umständlicher for-Anweisungen, lässt es eher wie eine gewöhnliche prozedurale Sprache aussehen. Dies ist irreführend, da JavaScript mehr mit funktionalen Sprachen wie Lisp und Scheme gemeinsam hat als mit C oder Java. Es verwendet Arrays anstelle von Listen und Objekte anstelle von Eigenschaftslisten. Funktionen sind vom ersten Typ und Funktionen können Abschlüsse haben. Sie müssen nicht alle diese Klammern ausgleichen, um anonyme Funktionen zu verwenden.
JavaScript wurde ursprünglich für die Ausführung auf Netscape Navigator entwickelt. Sein Erfolg hat es de facto zum Standard in allen Webbrowsern gemacht. Dies führt zur Stereotypisierung von Sprachtypen. Man kann sagen, dass JavaScript der George Reeves unter den Programmiersprachen ist. JavaScript eignet sich auch für viele Anwendungen, die nichts mit Webseiten zu tun haben.
Die erste Version von JavaScript war ziemlich schwach. Es fehlen Ausnahmebehandlung, intrinsische Funktionen und Vererbung. In ihrer jetzigen Form handelt es sich um eine vollständige objektorientierte Programmiersprache. Viele der Argumente gegen die Sprache basieren jedoch auf ihrer unausgereiften Form.
Das für die Verwaltung der Sprache zuständige ECMA-Komitee entwickelt Erweiterungen, was zwar gut gemeint ist, aber auch ein größeres Problem verschärft: immer mehr Versionen. Und das sorgte für noch mehr Verwirrung.
Keine Programmiersprache ist perfekt. JavaScript weist auch eigene Designfehler auf, z. B. das Überladen zum Ausdrucken von Additionen und die Verkettung von Zeichenfolgen mit der Typkonvertierung. Die fehleranfällige with-Anweisung sollte ebenfalls vermieden werden. Die Richtlinie für reservierte Wörter ist zu streng. Auch die Einbettung von Semikolons ist ein großer Fehler, ebenso wie die Notation regulärer Ausdrücke. Diese Fehler können zu Programmierfehlern führen und gleichzeitig das Design der Sprache als Ganzes in Frage stellen. Glücklicherweise können viele dieser Probleme mit einem sehr guten Flusenprogramm gemildert werden.
Das Gesamtdesign dieser Sprache ist recht solide. Überraschenderweise scheint das ECMAScript-Komitee kein Interesse daran zu haben, diese Fehler zu korrigieren. Vielleicht sind sie mehr daran interessiert, eine neue Sprache zu schaffen. (Hinweis: Dies sollte ein Witz des Autors sein).
Einige frühe Implementierungen von JavaScript waren voller Fehler. Dies spiegelt sich in der Sprache wider. Erschwerend kommt hinzu, dass diese Implementierungen in noch fehlerhaftere Webbrowser eingebettet wurden.
Fast alle Bücher über JavaScript sind ziemlich schlecht. Sie sind voller Fehler, unangemessener Beispiele und wenig hilfreicher Übungen. Wichtige Merkmale der Sprache werden schlecht erklärt oder völlig ignoriert. Ich habe viele Bücher über JavaScript überarbeitet, aber ich empfehle nur eines: „The Definitive Guide to JavaScript (Fifth Edition)“ von David Flanagan. (Anmerkung des Autors: Wenn Sie ein gutes Buch schreiben, senden Sie mir bitte ein kostenloses Exemplar.)
Offizielle JavaScript-Spezifikationen werden von ECMA veröffentlicht. Die Qualität dieser offiziellen Spezifikation ist recht gering. Und schwer zu lesen und zu verstehen. Dies trägt zum Problem schlechter Bücher bei, da Autoren keine Standarddokumentation verwenden können, um ihr Verständnis der Sprache zu verbessern. ECMA und das TC39-Komitee sollten darüber zutiefst beschämt und beunruhigt sein.
Viele Leute, die JavaScript verwenden, sind keine Programmierer. Ihnen mangelt es an Professionalität und Ausbildung, um gute Programme zu schreiben. Unabhängig davon ist JavaScript so ausdrucksstark, dass mit JavaScript viele sinnvolle Dinge erledigt werden können. Dies hat JavaScript den Ruf eingebracht, dass JavaScript eine Sprache ist, die ausschließlich für Amateure entwickelt wurde und nicht für die professionelle Programmierung geeignet ist. Tatsächlich ist dies nicht der Fall.
Ist JavaScript objektorientiert? Es verfügt über Objekte und ihre Objekte können Daten und Methoden zur Verarbeitung der Daten enthalten. Objekte können andere Objekte enthalten. Es verfügt über keine Klasse, aber über einen Konstruktor, mit dem Sie klassenähnliche Operationen ausführen können, einschließlich der Funktion als Container für Klassenvariablen und -methoden. Es gibt keine klassenorientierte Vererbung, aber eine prototyporientierte Vererbung.
Die beiden wichtigsten Möglichkeiten, ein Objektsystem zu erstellen, sind Vererbung und Aggregation. JavaScript verfügt über beide Methoden, aber seine dynamische Natur macht es basierend auf der Aggregation noch besser.
Einige argumentieren, dass JavaScript nicht wirklich objektorientiert ist, da es das Ausblenden von Informationen nicht unterstützt (bereitstellt). Das heißt, ein Objekt kann keine privaten Variablen oder Methoden haben: Alle Mitglieder sind öffentlich.
Aber es gibt Beweise dafür, dass Objekte in JavaScript private Variablen und private Methoden haben können. (Hinweis: Im Originalartikel des Autors finden Sie hier einen Link zur Einführung in die Dokumentation zu privaten Variablen und privaten Methoden von Objekten.) Natürlich verstehen das nur wenige Menschen, da JavaScript die am meisten missverstandene Programmiersprache der Welt ist. (Anmerkung: Der Autor verwendet hier eine unbeschwerte Art der Lächerlichkeit).
Einige argumentieren, dass JavaScript nicht wirklich objektorientiert ist, weil es keine Vererbung unterstützt. Dies beweist jedoch, dass JavaScript nicht nur die traditionelle Vererbung unterstützen kann, sondern auch andere Code-Wiederverwendungsmuster anwenden kann. (Hinweis: Der Originaltext ist hier immer noch ein Link)
Copyright 2001 Douglas Crockford. Copyright Wrrrldwide.
[Empfohlener Kurs: Javascript-Video-Tutorial]
Das obige ist der detaillierte Inhalt vonJavaScript: Die am meisten missverstandene Sprache der Welt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!