Über JavaScript

  • Adressname der Version: JavaScript/Guide/Ueber_JavaScript
  • Titel der Version: Über JavaScript
  • ID der Version: 446593
  • Erstellt:
  • Autor: eminor
  • Aktuelle Version? Nein
  • Kommentar

Inhalt der Version

Dieses Kapitel stellt JavaScript vor und führt in die grundlegenden Konzepte der Sprache ein.

Was ist JavaScript?

JavaScript ist eine plattformübergreifende und objektorientierte Skriptsprache. Sie ist schlank und leichtgewichtig, jedoch als alleinstehende Sprache nicht besonders nützlich. Sie ist dafür geschaffen in andere Produkte und Applikationen  - wie z.B. Webbrowser - integriert zu werden. Innerhalb einer Hostumgebung kann JavaScript mit den Objekten dieser Umgebung verknüpft werden, um eine programmatische Kontrolle zu ermöglichen.

Der Kern von JavaScript besteht aus verschiedenen Objekten wie z.B. Array,  Date und Math und einer Kernausstattung von Sprachelementen wie Operatoren, Kontrollstrukturen und Anweisungen. Die Kernelemente der Sprache können für unterschiedliche Zwecke durch weitere Objekte ergänzt werden:

  • Clientseitiges JavaScript erweitert den Kern der Sprache, indem Objekte zur Kontrolle des Browsers (Firefox oder ein anderer Webbrowser) und dessen Document Object Model (DOM) bereitgestellt werden. Zum Beispiel erlaubt clientseitiges JavaScript einer Applikation, Elemente auf ein HTML-Formular zu platzieren und auf Ereignisse, wie z.B. Mausklicks, Formulareingaben oder Seitennavigation zu reagieren.
  • Serverseitiges JavaScript erweitert den Kern der Sprache, indem Objekte bereitgestellt werden, die es ermöglichen, JavaScript auf einem Server laufen zu lassen. Zum Beispiel kann mit serverseitigen Erweiterungen die Kommunikation mit einer Datenbank, kontinuierliche Informationsbeschaffung bei Ausführung einer Applikation oder die Dateimanipulation auf dem Server ermöglicht werden.

Durch die Funktionalität von JavaScript's LiveConnect kann Java- und JavaScript-Code miteinander kommunizieren. Von JavaScript aus können Instanzen von Java-Objekten erzeugt und deren öffentliche Methoden und Felder angesprochen werden. Von Java aus kann auf die Eigenschaften und Methoden von JavaScript-Objekten zugegriffen werden.

JavaScript wurde von Netscape eingeführt und zuerst von Netscape verwendet. Parallel entwickelte Microsoft eine eigene Version der Sprache und nannte sie JScript. Dies führt dazu, dass insbesondere bei älteren Browsern eine spezielle Behandlung der Browser nötig wird, um das Funktionieren der Applikation sicherzustellen. Später wurde die Sprache von der Standardisierungsorganisation ECMA unter dem Namen ECMAScript standardisiert.

JavaScript und Java

JavaScript und Java sind zum Teil ähnlich, doch andererseits auch sehr verschieden. JavaScript hat Gemeinsamkeiten mit Java, aber hat keine so starke Typisierung und starke Typ-Überprüfung. Javascript ist eine dynamisch typisierte Sprache. Das bedeutet, dass sich der Typ einer Variablen aus dem zugewiesenen Wert ergibt und nicht vorher festgelegt werden muss. Javascript folgt weitgehend der Syntax von Java-Ausdrücken, Namenskonventionen und grundlegenden Konstruktionen zur Flusskontrolle, weshalb die Sprache von LiveScript in JavaScript umbenannt wurde.

Im Gegensatz zu Java's Kompilerzeit-System mit Klassen, die sich aus Deklarationen zusammensetzen, verwendet JavaScript ein Laufzeitsystem, das auf wenigen Datentypen basiert, die numerische Werte, boolsche Werte und Zeichenketten repräsentieren. JavaScript verwendet außerdem ein Prototypen-basiertes Objektmodell anstelle eines weiter verbreiteten klassenbasierten Objektmodells.  Das Prototypen-basierte Modell ermöglicht dynamische Vererbung - d.h. was vererbt wird kann zwischen den einzelnen Objekten variieren. JavaScript unterstützt zudem Funktionen, ohne spezielle deklarative Anforderungen. Funktionen können  z.B. Eigenschaften von Objekten sein, die als schwach typisierte Methoden ausgeführt werden.

JavaScript ist - verglichen mit Java - eine sehr frei geformte Sprache. Es müssen nicht alle Variablen, Klassen und Methoden deklariert werden. Auch braucht man sich nicht darum zu kümmern, ob Methoden als öffentlich, privat oder geschützt deklariert werden sollten. Es müssen keine Interfaces implementiert werden und Variablen, Parameter und Rückgabewerte von Funktionen werden nicht explizit typisiert.

Java ist eine klassenbasierte Programmiersprache, entworfen für schnelle Ausführung und Typsicherheit. Typsicherheit bedeutet, dass z.B. ein Java-Integer in eine Objektreferenz gecastet, oder auf privaten Speicher zugegriffen werden kann, indem man Java-Bytecode manipuliert. Bei Java's klassenbasiertem Modell setzen sich Programme exklusiv aus Klassen und ihren Methoden zusammen. Java's Vererbung und starke Typisierung erfordern dicht verschachtelte Objekthierarchien. Diese Anforderungen machen Java-Programmierung komplexer als JavaScript-Programmierung.

Auf der anderen Seite ist JavaScript mit einer Reihe von schmaleren, dynamisch typisierten Programmiersprachen verwandt, wie z.B. HyperTalk und dBASE. Diese Skriptsprachen offerieren Programmier-Werkzeuge für ein weit größeres Publikum, aufgrund ihrer einfacheren Syntax, speziellen eingebauten Funktionalität, und minimalen Anforderungen für die Erstellung von Objekten.

Tabelle 1.1 JavaScript verglichen mit Java
JavaScript Java
Objektorientiert. Keine Unterscheidung zwischen Typen von Objekten. Vererbung geschieht durch den Prototype-Mechanismus. Eigenschaften und Methoden können dynamisch jedem Objekt hinzugefügt werden. Klassenbasiert. Objekte werden in Klassen und Instanzen unterteilt. Vererbung geschieht durch die Festlegung der Klassenhierarchie. Klassen und Instanzen können keine Eigenschaften oder Methoden dynamisch hinzugefügt werden.
Variable Datentypen werden nicht deklariert (dynamische Typisierung). Variable Datentypen müssen deklariert werden (statische Typisierung).
Es kann nicht automatisch auf die Festplatte geschrieben werden. Es kann nicht automatisch auf die Festplatte geschrieben werden.

Mehr Informationen zu den Unterschieden zwischen JavaScript und Java findet man im Kapitel Feinheiten des Objektmodells.

Javascript und die ECMAScript-Spezifikation

Netscape arbeitete mit Ecma International zusammen - eine private, internationale Normungsorganisation zur Normung von Informations- und Kommunikationssystemen und Unterhaltungselektronik. Die Organisation war früher unter dem Namen ECMA (European Computer Manufacturers Association) bekannt und soll für die Standardisierung einer internationalen Programmiersprache basiernd auf dem Kern von JavaScript sorgen. Diese standardisierte Version von JavaScript, genannt ECMAScript, verhält sich in allen Applikationen equivalent, die den Standard unterstützen. Unternehmen können den offenen Standard bei der Entwicklung für ihre Implementierung von JavaScript benutzen. Der ECMAScript-Standard ist in der Spezifikation ECMA-262 dokumentiert.

Der Standard ECMA-262 wurde auch von der ISO (International Organization for Standardization) als ISO-16262 abgenommen. Es gibt eine PDF-Version des ECMA-262 (veraltete Version) auf der Website von Mozilla. Außerdem wird die Spezifikation auf der Ecma International Website bereitgestellt. Die ECMAScript-Spezifikation beschreibt nicht das Document Object Model (DOM), welches vom World Wide Web Consortium (W3C) standardisiert ist. Das DOM definiert die Art und Weise, in welcher Form ein HTML-Dokument für den Zugriff mit Skripten bereitgestellt wird.

Beziehungen zwischen JavaScript-Versionen und ECMAScript-Editionen

Netscape arbeitete eng mit Ecma International zusammen, um die ECMAScript-Spezifikation (ECMA-262) zu entwerfen. Die Folgende Tabelle beschreibt die Beziehung zwischen Javascript-Versionen und ECMAScript-Editionen.

Table 1.2 JavaScript-Versionen und ECMAScript-Editionen
JavaScript version Relationship to ECMAScript edition
JavaScript 1.1 ECMA-262, Edition 1 basiert auf JavaScript 1.1.
JavaScript 1.2 ECMA-262 war nicht fertig, als JavaScript 1.2 herausgegeben wurde. JavaScript 1.2 ist nicht vollständig kompatibel mit ECMA-262, Edition 1, wegen folgender Gründe:
  • Netscape entwickelte zusätzliche Features in JavaScript 1.2, die bei ECMA-262 noch nicht bedacht wurden.
  • ECMA-262 fügte zwei neue Features hinzu: Internationalisierung mit Hilfe von Unicode und einheitliches Verhalten über alle Plattformen hinweg. Diverse Features von JavaScript 1.2, wie z.B. das Date-Objekt waren plattformabhängig und arbeiteten mit plattformspezifischem Verhalten.

JavaScript 1.3

JavaScript 1.3 ist voll kompatibel mit ECMA-262, Edition 1.

JavaScript 1.3 löst die Inkonsistenz zwischen JavaScript 1.2 und ECMA-262 auf, während alle zusätzlichen Features von JavaScript 1.2 erhalten bleiben, abgesehen von den Operatoren == und !=, welche geändert wurden, um ECMA-262 zu entsprechen.

JavaScript 1.4

JavaScript 1.4 ist voll kompatibel mit ECMA-262, Edition 1.

Die dritte Version der ECMAScript-Spezifikation war nicht fertiggestellt, als JavaScript 1.4 herausgegeben wurde.

JavaScript 1.5 JavaScript 1.5 ist voll kompatibel mit ECMA-262, Edition 3.
Anmerkung: ECMA-262, Edition 2 besteht aus kleineren redaktionellen Veränderungen und Fehlerbehebungen bei der Edition 1 Spezifikation. Die aktuelle Version der TC39-Arbeitsgruppe von Ecma International ist ECMAScript Edition 5.1.

Die JavaScript-Referenz beschreibt, welche Features der Sprache mit ECMAScript konform sind.

JavaScript wird immer Features beinhalten, die nicht Teil der ECMAScript-Spezifikation sind. JavaScript ist kompatibel mit ECMAScript, während noch weitere Features zur Verfügung stehen.

JavaScript-Dokumentation im Vergleich zur ECMAScript-Spezifikation

Die ECMAScript-Spezifikation ist ein Satz von Anforderungen für die Implementierung von ECMAScript. Sie ist nützlich, wenn man wissen möchte, ob ein JavaScript-Feature von ECMAScript-Implementationen unterstützt wird. Wenn man nur JavaScript-Code schreiben möchte, der nur Features, die von ECMAScript unterstützt werden, beinhaltet, dann lohnt es sich in die ECMAScript-Spezifikation zu schauen.

Das ECMAScript-Dokument ist nicht dafür vorgesehen, Skriptprogrammierern zu helfen. Diese sollten die JavaScript-Dokumentation benutzen, um sich über das Schreiben von Skripten zu informieren.

JavaScript und ECMAScript Terminologie

Die ECMAScript Spezifikation benutzt eine Terminologie und Syntax, mit denen reine Javascript-Programmierer nicht sehr vertraut sein dürften. Obgleich die Beschreibung der Sprache sich in ECMAScript unterscheidet, meint die Sprache selbst dasselbe. JavaScript unterstützt jede Funktionalität, die in der ECMAScript-Spezifikation beschrieben ist.

Die JavaScript-Dokumentation beschreibt Aspekte der Sprache, die für JavaScript-Programmierer geeignet sind. Zum Beispiel:

  • Auf das Globale Objekt wird in der JavaScript-Dokumentation nicht eingegangen, weil es nicht direkt benutzt wird. Die Methoden und Eigenschaften des Globalen Objekts, welche von Javascript-Programmierern benutzt werden, werden in der Javascript-Dokumentation diskutiert, jedoch dort Top-Level-Funktionen und Eigenschaften genannt.
  • Der parameterlose (zero-argument) Konstruktor mit Number- und String-Objekten wird in der JavaScript-Dokumentation nicht beschrieben, weil er von geringem Nutzen ist. Ein Number-Konstruktor ohne ein Argument gibt +0 zurück und ein String-Konstruktor ohne Argument "" (einen leeren String).
 
{{ autoPreviousNext("JSGChapters") }}

Quelltext der Version

<div>
  <p>Dieses Kapitel stellt JavaScript vor und führt in die grundlegenden Konzepte der Sprache ein.</p>
  <h3 id="Was_ist_JavaScript.3F">Was ist JavaScript?</h3>
  <p>JavaScript ist eine plattformübergreifende und objektorientierte Skriptsprache. Sie ist schlank und leichtgewichtig, jedoch als alleinstehende Sprache nicht besonders nützlich. Sie ist dafür geschaffen in andere Produkte und Applikationen&nbsp; - wie z.B. Webbrowser - integriert zu werden. Innerhalb einer Hostumgebung kann JavaScript mit den Objekten dieser Umgebung verknüpft werden, um eine programmatische Kontrolle zu ermöglichen.</p>
  <p>Der Kern von JavaScript besteht aus verschiedenen Objekten wie z.B. Array,&nbsp; Date und Math und einer Kernausstattung von Sprachelementen wie Operatoren, Kontrollstrukturen und Anweisungen. Die Kernelemente der Sprache können für unterschiedliche Zwecke durch weitere Objekte ergänzt werden:</p>
  <ul>
    <li><em>Clientseitiges JavaScript </em>erweitert den Kern der Sprache, indem Objekte zur Kontrolle des Browsers (Firefox oder ein anderer Webbrowser) und dessen <em>Document Object Model</em> (DOM) bereitgestellt werden. Zum Beispiel erlaubt clientseitiges JavaScript einer Applikation, Elemente auf ein HTML-Formular zu platzieren und auf Ereignisse, wie z.B. Mausklicks, Formulareingaben oder Seitennavigation zu reagieren.</li>
    <li><em>Serverseitiges JavaScript </em>erweitert den Kern der Sprache, indem Objekte bereitgestellt werden, die es ermöglichen, JavaScript auf einem Server laufen zu lassen. Zum Beispiel kann mit serverseitigen Erweiterungen die Kommunikation mit einer Datenbank, kontinuierliche Informationsbeschaffung bei Ausführung einer Applikation oder die Dateimanipulation auf dem Server ermöglicht werden.</li>
  </ul>
  <p>Durch die Funktionalität von JavaScript's LiveConnect kann Java- und JavaScript-Code miteinander kommunizieren. Von JavaScript aus können Instanzen von Java-Objekten erzeugt und deren öffentliche Methoden und Felder angesprochen werden. Von Java aus kann auf die Eigenschaften und Methoden von JavaScript-Objekten zugegriffen werden.</p>
  <p>JavaScript wurde von Netscape eingeführt und zuerst von Netscape verwendet. Parallel entwickelte Microsoft eine eigene Version der Sprache und nannte sie JScript. Dies führt dazu, dass insbesondere bei älteren Browsern eine spezielle Behandlung der Browser nötig wird, um das Funktionieren der Applikation sicherzustellen. Später wurde die Sprache von der Standardisierungsorganisation ECMA unter dem Namen ECMAScript standardisiert.</p>
  <h3 id="JavaScript_und_Java">JavaScript und Java</h3>
  <p>JavaScript und Java sind zum Teil ähnlich, doch andererseits auch sehr verschieden. JavaScript hat Gemeinsamkeiten mit Java, aber hat keine so starke Typisierung und starke Typ-Überprüfung. Javascript ist eine dynamisch typisierte Sprache. Das bedeutet, dass sich der Typ einer Variablen aus dem zugewiesenen Wert ergibt und nicht vorher festgelegt werden muss. Javascript folgt weitgehend der Syntax von Java-Ausdrücken, Namenskonventionen und grundlegenden Konstruktionen zur Flusskontrolle, weshalb die Sprache von LiveScript in JavaScript umbenannt wurde.</p>
  <p>Im Gegensatz zu Java's Kompilerzeit-System mit Klassen, die sich aus Deklarationen zusammensetzen, verwendet JavaScript ein Laufzeitsystem, das auf wenigen Datentypen basiert, die numerische Werte, boolsche Werte und Zeichenketten repräsentieren. JavaScript verwendet außerdem ein Prototypen-basiertes Objektmodell anstelle eines weiter verbreiteten klassenbasierten Objektmodells.&nbsp; Das Prototypen-basierte Modell ermöglicht dynamische Vererbung - d.h. was vererbt wird kann zwischen den einzelnen Objekten variieren. JavaScript unterstützt zudem Funktionen, ohne spezielle deklarative Anforderungen. Funktionen können&nbsp; z.B. Eigenschaften von Objekten sein, die als schwach typisierte Methoden ausgeführt werden.</p>
  <p>JavaScript ist - verglichen mit Java - eine sehr frei geformte Sprache. Es müssen nicht alle Variablen, Klassen und Methoden deklariert werden. Auch braucht man sich nicht darum zu kümmern, ob Methoden als öffentlich, privat oder geschützt deklariert werden sollten. Es müssen keine Interfaces implementiert werden und Variablen, Parameter und Rückgabewerte von Funktionen werden nicht explizit typisiert.</p>
  <p>Java ist eine klassenbasierte Programmiersprache, entworfen für schnelle Ausführung und Typsicherheit. Typsicherheit bedeutet, dass z.B. ein Java-Integer in eine Objektreferenz gecastet, oder auf privaten Speicher zugegriffen werden kann, indem man Java-Bytecode manipuliert. Bei Java's klassenbasiertem Modell setzen sich Programme exklusiv aus Klassen und ihren Methoden zusammen. Java's Vererbung und starke Typisierung erfordern dicht verschachtelte Objekthierarchien. Diese Anforderungen machen Java-Programmierung komplexer als JavaScript-Programmierung.</p>
  <p>Auf der anderen Seite ist JavaScript mit einer Reihe von schmaleren, dynamisch typisierten Programmiersprachen verwandt, wie z.B. HyperTalk und dBASE. Diese Skriptsprachen offerieren Programmier-Werkzeuge für ein weit größeres Publikum, aufgrund ihrer einfacheren Syntax, speziellen eingebauten Funktionalität, und minimalen Anforderungen für die Erstellung von Objekten.</p>
  <table class="standard-table">
    <caption>
      Tabelle 1.1 JavaScript verglichen mit Java</caption>
    <thead>
      <tr>
        <th scope="col">JavaScript</th>
        <th scope="col">Java</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Objektorientiert. Keine Unterscheidung zwischen Typen von Objekten. Vererbung geschieht durch den Prototype-Mechanismus. Eigenschaften und Methoden können dynamisch jedem Objekt hinzugefügt werden.</td>
        <td>Klassenbasiert. Objekte werden in Klassen und Instanzen unterteilt. Vererbung geschieht durch die Festlegung der Klassenhierarchie. Klassen und Instanzen können keine Eigenschaften oder Methoden dynamisch hinzugefügt werden.</td>
      </tr>
      <tr>
        <td>Variable Datentypen werden nicht deklariert (dynamische Typisierung).</td>
        <td>Variable Datentypen müssen deklariert werden (statische Typisierung).</td>
      </tr>
      <tr>
        <td>Es kann nicht automatisch auf die Festplatte geschrieben werden.</td>
        <td>Es kann nicht automatisch auf die Festplatte geschrieben werden.</td>
      </tr>
    </tbody>
  </table>
  <p>Mehr Informationen zu den Unterschieden zwischen JavaScript und Java findet man im Kapitel <a href="/de/docs/JavaScript/Guide/Feinheiten_des_Objektmodells" title="/de/docs/JavaScript/Guide/Feinheiten_des_Objektmodells">Feinheiten des Objektmodells</a>.</p>
  <h3 id="Javascript_und_die_ECMAScript_Spezifikation">Javascript und die ECMAScript-Spezifikation</h3>
  <p>Netscape arbeitete mit&nbsp;<a class="external" href="http://www.ecma-international.org/" title="http://www.ecma-international.org/">Ecma International</a> zusammen - eine private, internationale <span class="mw-redirect">Normungsorganisation</span> zur Normung von <span class="mw-redirect">Informations- und Kommunikationssystemen</span> und Unterhaltungselektronik. Die Organisation war früher unter dem Namen ECMA (European Computer Manufacturers Association) bekannt und soll für die Standardisierung einer internationalen Programmiersprache basiernd auf dem Kern von JavaScript sorgen. Diese standardisierte Version von JavaScript, genannt ECMAScript, verhält sich in allen Applikationen equivalent, die den Standard unterstützen. Unternehmen können den offenen Standard bei der Entwicklung für ihre Implementierung von JavaScript benutzen. Der ECMAScript-Standard ist in der Spezifikation ECMA-262 dokumentiert.</p>
  <p>Der Standard ECMA-262 wurde auch von der <a class="external" href="http://www.iso.ch/">ISO</a> (International Organization for Standardization) als ISO-16262 abgenommen. Es gibt eine <a class="external" href="http://www-archive.mozilla.org/js/language/E262-3.pdf" title="http://www-archive.mozilla.org/js/language/E262-3.pdf">PDF-Version des ECMA-262</a> (veraltete Version) auf der Website von Mozilla. Außerdem wird die Spezifikation auf der <a class="external" href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">Ecma International Website</a> bereitgestellt. Die ECMAScript-Spezifikation beschreibt nicht das Document Object Model (DOM), welches vom <a class="external" href="http://www.w3.org/">World Wide Web Consortium (W3C)</a> standardisiert ist. Das DOM definiert die Art und Weise, in welcher Form ein HTML-Dokument für den Zugriff mit Skripten bereitgestellt wird.</p>
  <h4 id="Relationship_between_JavaScript_Versions_and_ECMAScript_Editions" name="Relationship_between_JavaScript_Versions_and_ECMAScript_Editions">Beziehungen zwischen JavaScript-Versionen und ECMAScript-Editionen</h4>
  <p>Netscape arbeitete eng mit Ecma International zusammen, um die ECMAScript-Spezifikation (ECMA-262) zu entwerfen. Die Folgende Tabelle beschreibt die Beziehung zwischen Javascript-Versionen und ECMAScript-Editionen.</p>
  <table class="standard-table">
    <caption>
      Table 1.2 JavaScript-Versionen und ECMAScript-Editionen</caption>
    <thead>
      <tr>
        <th scope="row">JavaScript version</th>
        <th scope="col">Relationship to ECMAScript edition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>JavaScript 1.1</td>
        <td>ECMA-262, Edition 1 basiert auf JavaScript 1.1.</td>
      </tr>
      <tr>
        <td>JavaScript 1.2</td>
        <td>ECMA-262 war nicht fertig, als JavaScript 1.2 herausgegeben wurde. JavaScript 1.2 ist nicht vollständig kompatibel mit ECMA-262, Edition 1, wegen folgender Gründe:
          <ul>
            <li>Netscape entwickelte zusätzliche Features in JavaScript 1.2, die bei ECMA-262 noch nicht bedacht wurden.</li>
            <li>ECMA-262 fügte zwei neue Features hinzu: Internationalisierung mit Hilfe von Unicode und einheitliches Verhalten über alle Plattformen hinweg. Diverse Features von JavaScript 1.2, wie z.B. das <code>Date</code>-Objekt waren plattformabhängig und arbeiteten mit plattformspezifischem Verhalten.</li>
          </ul>
        </td>
      </tr>
      <tr>
        <td>
          <p>JavaScript 1.3</p>
        </td>
        <td>
          <p>JavaScript 1.3 ist voll kompatibel mit ECMA-262, Edition 1.</p>
          <p>JavaScript 1.3 löst die Inkonsistenz zwischen JavaScript 1.2 und ECMA-262 auf, während alle zusätzlichen Features von JavaScript 1.2 erhalten bleiben, abgesehen von den Operatoren == und !=, welche geändert wurden, um ECMA-262 zu entsprechen.</p>
        </td>
      </tr>
      <tr>
        <td>
          <p>JavaScript 1.4</p>
        </td>
        <td>
          <p>JavaScript 1.4 ist voll kompatibel mit ECMA-262, Edition 1.</p>
          <p>Die dritte Version der ECMAScript-Spezifikation war nicht fertiggestellt, als JavaScript 1.4 herausgegeben wurde.</p>
        </td>
      </tr>
      <tr>
        <td>JavaScript 1.5</td>
        <td>JavaScript 1.5 ist voll kompatibel mit ECMA-262, Edition 3.</td>
      </tr>
    </tbody>
  </table>
  <div class="note">
    <strong>Anmerkung</strong>: ECMA-262, Edition 2 besteht aus kleineren redaktionellen Veränderungen und Fehlerbehebungen bei der Edition 1 Spezifikation. Die aktuelle Version der TC39-Arbeitsgruppe von Ecma International ist ECMAScript Edition 5.1.</div>
  <p>Die <a href="https://developer.mozilla.org/en/JavaScript/Reference" title="en/JavaScript/Reference">JavaScript-Referenz</a> beschreibt, welche Features der Sprache mit ECMAScript konform sind.</p>
  <p>JavaScript wird immer Features beinhalten, die nicht Teil der ECMAScript-Spezifikation sind. JavaScript ist kompatibel mit ECMAScript, während noch weitere Features zur Verfügung stehen.</p>
  <h4 id="JavaScript_Documentation_versus_the_ECMAScript_Specification" name="JavaScript_Documentation_versus_the_ECMAScript_Specification">JavaScript-Dokumentation im Vergleich zur ECMAScript-Spezifikation</h4>
  <p>Die ECMAScript-Spezifikation ist ein Satz von Anforderungen für die Implementierung von ECMAScript. Sie ist nützlich, wenn man wissen möchte, ob ein JavaScript-Feature von ECMAScript-Implementationen unterstützt wird. Wenn man nur JavaScript-Code schreiben möchte, der nur Features, die von ECMAScript unterstützt werden, beinhaltet, dann lohnt es sich in die ECMAScript-Spezifikation zu schauen.</p>
  <p>Das ECMAScript-Dokument ist nicht dafür vorgesehen, Skriptprogrammierern zu helfen. Diese sollten die JavaScript-Dokumentation benutzen, um sich über das Schreiben von Skripten zu informieren.</p>
  <h4 id="JavaScript_and_ECMAScript_Terminology" name="JavaScript_and_ECMAScript_Terminology">JavaScript und ECMAScript Terminologie</h4>
  <p>Die ECMAScript Spezifikation benutzt eine Terminologie und Syntax, mit denen reine Javascript-Programmierer nicht sehr vertraut sein dürften. Obgleich die Beschreibung der Sprache sich in ECMAScript unterscheidet, meint die Sprache selbst dasselbe. JavaScript unterstützt jede Funktionalität, die in der ECMAScript-Spezifikation beschrieben ist.</p>
  <p>Die JavaScript-Dokumentation beschreibt Aspekte der Sprache, die für JavaScript-Programmierer geeignet sind. Zum Beispiel:</p>
  <ul>
    <li>Auf das Globale Objekt wird in der JavaScript-Dokumentation nicht eingegangen, weil es nicht direkt benutzt wird. Die Methoden und Eigenschaften des Globalen Objekts, welche von Javascript-Programmierern benutzt werden, werden in der Javascript-Dokumentation diskutiert, jedoch dort Top-Level-Funktionen und Eigenschaften genannt.</li>
    <li>Der parameterlose (zero-argument) Konstruktor mit <code>Number</code>- und <code>String</code>-Objekten wird in der JavaScript-Dokumentation nicht beschrieben, weil er von geringem Nutzen ist. Ein <code>Number</code>-Konstruktor ohne ein Argument gibt +0 zurück und ein <code>String-K</code>onstruktor ohne Argument "" (einen leeren String).</li>
  </ul>
</div>
<div>
  &nbsp;</div>
<div>
  {{ autoPreviousNext("JSGChapters") }}</div>
Zu dieser Version zurücksetzen