Unterschiede zwischen JavaScript und Java
Java is to JavaScript like Car is to Carpet.
Java und JavaScript haben zwar einige Gemeinsamkeiten, aber auch wesentliche Unterschiede:
| Java | JavaScript |
|---|---|
| statisch typisiert | dynamisch typisiert |
Anweisungsende ist ; | Anweisungsende ist ; oder Zeilenende |
Programmcode benötigt mindestens eine Klasse und eine Methode (main). | Jeder JavaScript-Ausdruck ist ein lauffähiges Programm (z.B. 1+2). |
Methoden haben festen Parameter und können einen Rückgabewert haben (oder keinen mit void) | Funktionen sind Objekte, die flexible Parameteranzahlen und immer einen Rückgabewert haben. Funktionen können als Teil von Klassen auch Methoden sein. |
| Objekte sind Instanzen von Klassen. | object ist ein eigener Datentyp für JavaScript-Objekte (key/value-Paare ähnlich wie HashMap in Java). |
this bezieht sich auf die Objektinstanz. | this bezieht sich auf den Kontext, in dem eine Funktion aufgerufen wird. |
| Konstruktoren in Klassen sind für die Objekterzeugung zuständig. | Einerseits gibt es in Klassen Konstruktor-Methoden. Andererseits lassen sich Funktionen wie Konstruktoren verwenden (siehe Prototypen in JavaScript). |
| Java-Quellcode wird kompiliert in Bytecode, der dann von der JVM ausgeführt wird. | JavaScript-Quellcode wird als Skriptsprache direkt Anweisung für Anweisung interpretiert. |
| Vererbung mit Klassen und Interfaces | Vererbung basiert ursprünglich auf Prototypen, Klassenhierarchien erst seit ECMAScript 2015. |
| Java wird durch den von Oracle dominierten Java Community Process (JCP) spezifiziert | JavaScript wird als ECMAScript von Vertretern verschiedener Unternehmen standardisiert. |
| Der Entwurf von Java dauerte mehrere Jahre. Veröffentlichung Anfang 1996 mit vorausgehenden Beta-Versionen. | JavaScript wurde in 2-3 Wochen konzipiert und implementiert. Veröffentlichung Ende 1995. |
Bemerkung: Mit TypeScript erhält JavaScript eine statische Typisierung.