Stimmt das wirklich alles, wie es da steht? Soweit ich weiß, ist JavaScript doch eine Skriptsprache und keine Programmiersprache, und das mit dem objektorientiert ist auch nicht wirklich zwingend. Kann jemand bestätigen, daß die Syntax so ähnlich ist wie die von Java (das ja eine C++-ähnliche benutzt)?
Mein Stand der Dinge war bisher eher:
- Netscape hat JavaScript erfunden, trotz der Namensähnlichkeit hat es aber nicht mit Java zu tun.
- um der Sprache etwas mehr Glaubwürdigkeit zu verleihen wurde sie später der ECMA zur Standardisierung vorgelegt.
- danach wurd sie auch dem W3C vorgelegt, da Microsoft aber inzwischen mit JScript eine eigene Sprache erfunden hatte, wurde keine von beiden zum Standard erhoben, sondern stattdessen ein Standard zur Erstellung von Skriptsprachen entwickelt, der dann zu DOM wurde.
- Der letzte Satz ist nicht richtig: DOM heisst Document Object Model und hat mit der Sprache direkt nichts zu tun. Mit der Sprache greift man aber auf die Objekte zu, aus denen ein Dokument aufgebaut ist.
--SoniC
Ich kenn mich da auch nicht aus. Allerdings ist die Syntax ähnlich C und damit Java. Eine Skriptsprache ist auch eine Programmiersprache.
--Vulture
OK, aber Skriptsprache finde ich trotzdem genauer, Programmiersprache klingt immer so nach Informatikstudium :-). Und wie ist das mit den Schnittstellen zu DOM? Kann man das wirklich so schreiben?
- Ja siehe http://www.w3.org www.w3.org
--SoniC
Naja, eigentlich ist weder Programmiersprache noch Skriptsprache. (Bei Skriptsprache denke ich hier an Shell-Skripte zum Beispiel.) Dafuer ist sie durch den Browser IMHO rechtlich zu sehr eingeschraenkt. Wie waere es mit "Web-Skriptsprache"?
--Evolux
aalso:
- Syntax ist wie in allen C/C++-Verwandten (wozu neben Java und JS auch noch PHP gehört).
- Erfunden wurde das ganze als "LiveScript" von Netscape, dann in JavaScript umbenannt.
- MS JScript ist im Grunde das gleiche, aber erweitert um einige DHTML-Funktionen und vor allem um Funktionen für das Scripting des Betriebssystems.
- DOM hat mit der Syntax nichts zu tun, wohl aber mit den Objekten in der Sprache. Und eben diese waren anfangs Alternativ zu den JScript-Erweiterungen, heute kann der MSIE beides.
- Netscape selbst hat dem ganzen auch noch einige Objekte verpasst, die nicht in dem ECMA-Standard gelandet sind (document.layers). Diese sind heute ausgestorben.
TheK 19:48, 27. Jun 2004 (CEST)
Habe Details zu Vererbung und Prototypen ergänzt. So ok?
--XRay 14:26, 24. Dez 2004 (CET)
Die Umlaute aus den Beispielskripten habe ich ersetzt, da dies in den Skripten bzw. XHTML- oder HTML-Seiten zu Problemem (oder Fehlern) führen könnte, zum Beispiel abhängig davon, ob jemand ISO-8859-15 oder UTF-8 als Zeichensatz nutzt.
Zu dem Umlauten in Kommentaren etc. Ja, Umlaute dürfen auftreten, sie müssen nur mit dem Zeichensatz passen. Probleme gibt es in der Regel dann, wenn man zum Beispiel XHTML-Dateien erstellt, diese mit UTF-8 verfasst, dann aber Umlaute in ISO-8859-1 einbringt. Daher gehe ich eher den Weg, Umlaute zu vermeiden.
Wie geht es weiter mit dem Abschnitt »Datenstrukturen und Objekte«?
Ich frage mich, welche Objekte bzw. Eigenschaften und Methoden dort genannt werden sollen. Worauf gründet sich die Auswahl der dort aufgelisteten? Momentan ist die Liste sehr bunt und folgt keinem Schema. Es sind einige ECMAScript-Objekte genannt, nämlich Array, String, Date und Math. Deren Eigenschaften und Methoden sind aber nicht annähernd vollständig genannt, es fehlen oft gebrauchte, während selten gebrauchte genannte sind. Von den ECMAScript-Standardobjekten fehlen z.B. Boolean, Number und RegExp. Welchen Sinn hat es, überhaupt einige willkürliche Objekte aus ECMAScript zu nennen? Für die spärliche Dokumentation der in Netscape-JavaScript eingeführten Objekte gilt das umso mehr. Warum gerade von window diese drei Funktionen und warum gerade das screen-Objekt? Unter »Function Objekt« ist dann ein Beispiel für eine Function-Expression aufgeführt, die dort wenig zu suchen hat (d.h. genauso viel, wie ein gewöhnliches Function-Statement, denn das erzeugt auch Function-Objekte). Können wir da irgendwie eine sinnvolle Ordnung hineinbringen? Ich persönlich sehe für eine Enzyklopädie wenig Sinn in einer notorisch unvollständigen Dokumentation von ein paar willkürlich ausgesuchten Objekten. Ich würde den Teil auf ein Minimum streichen, aber ich frage lieber vorher hier. Das hieße allgemeinere Erklärungen, was die ECMAScript-Objekte darstellen (Prototypen-Objekte für Datentypen- und strukturen) und welche Objekte in JavaScript das Rückgrat bilden (window, document, location usw.). --molily 03:34, 24. Feb 2005 (CET)
"Mittlerweile wurden auf dieser Basis zusätzlich normale Klassen implementiert, wohl in der Annahme, damit den Einstieg zu erleichtern."
Das ist so nicht richtig. Weder die aktuelle JavaScript Version (1.5) noch der aktuelle ECMAScript Standard 262 (dritte Version) kennen Klassen. (=> evtl. einfach Streichen?)
Außerdem würde ich vorschlagen alles was nicht Teil der JavaScript/ECMAScript Sprachen an sich ist zu entfernen (verschieben). Also insbesondere Objekte die Teil einer "Host Umgebung" sind. (Sprich Browser DOM Objekte wie window)
Zu den privaten Eigenschaften (JavaScript spezifisch wegen __parent__): function Foo(){var priv=1;this.get=function(){return priv;}}; var foo=new Foo();alert(foo.get());foo.get.__parent__.priv=10;alert(foo.get());