[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Leserlichkeit
Markierungen: Mobile Bearbeitung Bearbeitung von einer mobilen Anwendung Bearbeitung mit iOS-App App-Bearbeitung eines Abschnitts im Quelltextmodus
linkfix
 
Zeile 1:
 
{{Infobox Programmiersprache
| Logo = <syntaxhighlight lang="javascript" style="display:inline-block; text-align:left;">
Zeile 18 ⟶ 17:
| AktuelleVorabVersionFreigabeDatum =
| Typisierung = [[Schwache Typisierung|schwach]], [[Dynamische Typisierung|dynamisch]], [[Duck-Typing|duck]]
| Implementierung = [[SpiderMonkey]], [[Rhino (Programmierung)|Rhino]], [[WebKit#JavaScriptCore|JavaScriptCore]], [[V8 (JavaScript-ImplementierungEngine)|V8]]
| Dialekte =
| Standardisierungen =
Zeile 37 ⟶ 36:
Die [[Syntax]] von JavaScript ähnelt [[C (Programmiersprache)|C]]-Abkömmlingen. Trotz der Namens- und syntaktischen Ähnlichkeit hat JavaScript nur geringe Gemeinsamkeiten mit [[Java (Programmiersprache)|Java]]. So wird in JavaScript Vererbung nicht durch [[Klasse (Objektorientierung)|Klassen]], sondern durch [[Prototypenbasierte Programmierung|Prototypen]] unterstützt.
 
JavaScript wurde früher hauptsächlich [[client]]seitig eingesetzt. JavaScript bzw. die ECMAScript-Implementierungen ermöglichen aber beispielsweise mit dem [[Framework]] [[Node.js]]<ref>{{Internetquelle |autor=Jens Ihlenfeld |url=https://www.golem.de/0911/71418.html |titel=Node – strikt ereignisorientierter Javascript-Server |werk=Golem.de |datum=2009-11-24 |abruf=2016-07-27}}</ref> und als [[JScript]] bzw. [[JScript .NET]] in einer [[Active Server Pages|ASP]]- bzw. [[ASP.NET]]-Umgebung auf [[Microsoft Internet Information Services]] auch serverseitige Anwendungen. Weitere Beispiele für serverseitige JavaScript-Programmierung sind POW und Jaxer, die auf der Mozilla-JavaScript-Engine [[SpiderMonkey]] aufsetzen, V8CGI, welches auf der JavaScript-Implementierung [[V8 (JavaScript-ImplementierungEngine)|V8]] aufbaut und in den [[Apache HTTP Server]] integriert wird, sowie [[QML]], eine erweiterte Form von JavaScript zum Zeichnen von Oberflächen und Animationen.
 
Die Sprache wird auch als Skriptsprache für Spiele und [[Anwendungsprogramm]]e eingesetzt, da der Sprachkern nur wenige Objekte enthält und dadurch der zur Ausführung von in JavaScript formulierten Skripten erforderliche [[Interpreter]] relativ klein gehalten werden kann.
Zeile 171 ⟶ 170:
| Pratap Lakshman, Allen Wirfs-Brock
|-
| {{Version|co|2015}}<ref>{{Internetquelle |url=https://www.ecma-international.org/ecma-262/6.0/index.html |titel=ECMAScript 2015 Language Specification |sprache=en |abruf=2017-01-02}}</ref><ref>{{Literatur |Titel=ECMAScript 2016 Language Specification |Auflage=7 |Verlag=Emca International |Ort=Genf |Datum= |Sprache=en |Online=https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf |Format=PDF |KBytes= |Umfang=586}} {{Webarchiv |url=https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf |text=ECMAScript 2016 Language Specification |wayback=20150412040502}}</ref>
| Juni 2015
| Neue Syntax für komplexe Applikationen wie Klassen und Module, die aber mit ähnlicher Terminologie wie in ECMAScript 5 (strict mode) definiert werden können.<ref>{{Internetquelle |url=https://kangax.github.io/compat-table/es6/ |titel=ECMAScript 6 compatibility table |werk=kangax.github.io |sprache=en |abruf=2017-01-02}}</ref> Neue Sprachbestandteile wie <code>for</code>/<code>of</code>-Schleifen, teilweise an [[Python (Programmiersprache)|Python]] angelehnte Syntax usw. Der Codename lautet “Harmony” und wurde bis kurz vor Verabschiedung als „ECMAScript&nbsp;6“ bezeichnet,<ref>{{Literatur |Autor=Nicholas C. Zakas |Titel=Professional JavaScript for Web Developers |Verlag=John Wiley & Sons. |Datum=2011 |ISBN=978-1-118-02669-4 |Sprache=en |Umfang=960}}</ref> also „ES6“<ref>siehe englische WP</ref>.
Zeile 526 ⟶ 525:
* Der Objekttyp <code>Object</code>, von dem alle Objekte abgeleitet sind.
* Der Objekttyp <code>Function</code> von [[Funktion (Programmierung)|Funktionen]].
* Der Objekttyp <code>Array</code> von [[FeldArray (Datentyp)|Arrays]].
* Der Objekttyp <code>String</code> von [[Zeichenkette]]n.
* Der Objekttyp <code>Boolean</code> von [[boolesche Variable]]n.
Zeile 717 ⟶ 716:
Im Normalfall wird der Ausnahmeblock übersprungen. Nach der Ausführung des <code>try</code>-Blocks (auch teilweise) und gegebenenfalls des <code>catch</code>-Blocks werden in jedem Fall die Anweisungen im <code>finally</code>-Block ausgeführt. Der <code>finally</code>-Teil kann weggelassen werden, alternativ der <code>catch</code>-Teil.
 
Einige Laufzeitumgebungen wie [[V8 (JavaScript-ImplementierungEngine)|V8]] (und somit [[Node.js]]) und auch viele Webbrowser stellen gesonderte ''Error-Objekte'' zur Verfügung, die neben der Fehlermeldung auch einen [[Stacktrace]] und weitere Zusatzinformationen transportieren können.<ref>[http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi JavaScript Stack Trace API] in ''Google V8 Wiki'', Stand 28. Juni 2010, abgerufen am 23. Februar 2013</ref><ref>{{Webarchiv |url=http://www.aptana.com/reference/html/api/Error.html |text=JavaScript Core Reference: Error |wayback=20141104204221}} in ''Aptana HTML Reference'', Stand 2. Juli 2012, abgerufen am 23. Februar 2013</ref><ref>{{Internetquelle |autor=Tom DuPont |url=http://www.tomdupont.net/2013/04/report-unhandled-errors-from-javascript.html |titel=Report Unhandled Errors from JavaScript |datum=2013-04-13 |sprache=en |abruf=2013-04-16 |kommentar=Fehlerprotokollierung mit Stacktrace in JavaScript}}</ref>
Um diese Vorteile zu nutzen, ändert man im einfachsten Anwendungsfall den <code>throw</code>-Befehl von <syntaxhighlight lang="javascript" inline>throw "Meldungstext";</syntaxhighlight> zu <syntaxhighlight lang="javascript" inline>throw new Error("Meldungstext");</syntaxhighlight>.<ref>Nico Reed: {{Webarchiv |url=http://docs.nodejitsu.com/articles/errors/what-is-the-error-object |text=''What is the error object?'' |wayback=20130331135150}} In: ''Nodejitsu Documentation'', Stand 26. August 2011, abgerufen am 23. Februar 2013.</ref>
 
Zeile 795 ⟶ 794:
{{Normdaten|TYP=s|GND=4420180-1}}
 
[[Kategorie:ECMAScriptJavaScript| ]]
[[Kategorie:Skriptsprache]]
[[Kategorie:Objektorientierte Programmiersprache]]