CINXE.COM

JavaScript – Wikipedia

<!DOCTYPE html> <html class="client-nojs" lang="de" dir="ltr"> <head> <meta charset="UTF-8"> <title>JavaScript – Wikipedia</title> <script>(function(){var className="client-js";var cookie=document.cookie.match(/(?:^|; )dewikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t.",".\t,"],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"wgRequestId":"e84f622c-0a62-4f94-b6ca-7db75f3b411c","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"JavaScript","wgTitle":"JavaScript","wgCurRevisionId":248921156,"wgRevisionId":248921156,"wgArticleId":2512,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[ "ECMAScript","Skriptsprache","Objektorientierte Programmiersprache","Funktionale Programmiersprache","Prozedurale Programmiersprache"],"wgPageViewLanguage":"de","wgPageContentLanguage":"de","wgPageContentModel":"wikitext","wgRelevantPageName":"JavaScript","wgRelevantArticleId":2512,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgFlaggedRevsParams":{"tags":{"accuracy":{"levels":1}}},"wgStableRevisionId":248921156,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"de","pageLanguageDir":"ltr","pageVariantFallbacks":"de"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":70000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true, "wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":true,"wgVector2022LanguageInHeader":false,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q2005","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.gadget.citeRef":"ready","ext.gadget.defaultPlainlinks":"ready","ext.gadget.dewikiCommonHide":"ready","ext.gadget.dewikiCommonLayout":"ready","ext.gadget.dewikiCommonStyle":"ready","ext.gadget.NavFrame":"ready","ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.pygments":"ready","ext.cite.styles":"ready","skins.vector.styles.legacy":"ready","ext.flaggedRevs.basic":"ready", "mediawiki.codex.messagebox.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","codex-search-styles":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.pygments.view","ext.cite.ux-enhancements","mediawiki.page.media","site","mediawiki.page.ready","mediawiki.toc","skins.vector.legacy.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.flaggedRevs.advanced","ext.gadget.createNewSection","ext.gadget.WikiMiniAtlas","ext.gadget.OpenStreetMap","ext.gadget.CommonsDirekt","ext.gadget.donateLink","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.compactlinks","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession", "wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=de&amp;modules=codex-search-styles%7Cext.cite.styles%7Cext.flaggedRevs.basic%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cmediawiki.codex.messagebox.styles%7Cskins.vector.styles.legacy%7Cwikibase.client.init&amp;only=styles&amp;skin=vector"> <script async="" src="/w/load.php?lang=de&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=de&amp;modules=ext.gadget.NavFrame%2CciteRef%2CdefaultPlainlinks%2CdewikiCommonHide%2CdewikiCommonLayout%2CdewikiCommonStyle&amp;only=styles&amp;skin=vector"> <link rel="stylesheet" href="/w/load.php?lang=de&amp;modules=site.styles&amp;only=styles&amp;skin=vector"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="JavaScript – Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//de.m.wikipedia.org/wiki/JavaScript"> <link rel="alternate" type="application/x-wiki" title="Seite bearbeiten" href="/w/index.php?title=JavaScript&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (de)"> <link rel="EditURI" type="application/rsd+xml" href="//de.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://de.wikipedia.org/wiki/JavaScript"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de"> <link rel="alternate" type="application/atom+xml" title="Atom-Feed für „Wikipedia“" href="/w/index.php?title=Spezial:Letzte_%C3%84nderungen&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin-vector-legacy mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-JavaScript rootpage-JavaScript skin-vector action-view"><div id="mw-page-base" class="noprint"></div> <div id="mw-head-base" class="noprint"></div> <div id="content" class="mw-body" role="main"> <a id="top"></a> <div id="siteNotice"><!-- CentralNotice --></div> <div class="mw-indicators"> </div> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">JavaScript</span></h1> <div id="bodyContent" class="vector-body"> <div id="siteSub" class="noprint">aus Wikipedia, der freien Enzyklopädie</div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="contentSub2"></div> <div id="jump-to-nav"></div> <a class="mw-jump-link" href="#mw-head">Zur Navigation springen</a> <a class="mw-jump-link" href="#searchInput">Zur Suche springen</a> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="float-right infobox toccolours toptextcells" style="font-size:90%; margin-top:0; width:21em;"> <tbody><tr> <th colspan="2" class="hintergrundfarbe6" style="font-size:larger;">JavaScript </th></tr> <tr> <td colspan="2" class="center"><div style="display:inline-block; text-align:left;" class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// Beispiel JavaScript</span> <span class="kd">function</span><span class="w"> </span><span class="nx">halloWelt</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">alert</span><span class="p">(</span><span class="s1">&#39;Hello World&#39;</span><span class="p">);</span> <span class="p">}</span> <span class="nb">window</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s1">&#39;load&#39;</span><span class="p">,</span><span class="w"> </span><span class="nx">halloWelt</span><span class="p">);</span> </pre></div> <p>Beispiel JavaScriptcode </p> </td></tr> <tr> <th colspan="2" class="hintergrundfarbe5">Basisdaten </th></tr> <tr> <td><b><a href="/wiki/Programmierparadigma" title="Programmierparadigma">Paradigmen</a>:</b> </td> <td>multiparadigmatisch </td></tr> <tr> <td><b>Erscheinungsjahr:</b> </td> <td>1995 </td></tr> <tr> <td><b>Designer:</b> </td> <td><span class="wikidata-content"><a href="/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a></span> </td></tr> <tr> <td><b>Entwickler:</b> </td> <td><a href="/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a> </td></tr> <tr> <td><b>Aktuelle&#160;<a href="/wiki/Version_(Software)" title="Version (Software)">Version</a>:</b> </td> <td style="white-space:nowrap;">ECMAScript 2023<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> &#160;<small>(Juni 2023)</small> </td></tr> <tr> <td><b><a href="/wiki/Typisierung_(Informatik)" title="Typisierung (Informatik)">Typisierung</a>:</b> </td> <td><a href="/wiki/Schwache_Typisierung" class="mw-redirect" title="Schwache Typisierung">schwach</a>, <a href="/wiki/Dynamische_Typisierung" title="Dynamische Typisierung">dynamisch</a>, <a href="/wiki/Duck-Typing" title="Duck-Typing">duck</a> </td></tr> <tr> <td><b>Wichtige <a href="/wiki/Implementierung" title="Implementierung">Implementierungen</a>:</b> </td> <td><a href="/wiki/SpiderMonkey" title="SpiderMonkey">SpiderMonkey</a>, <a href="/wiki/Rhino_(Programmierung)" title="Rhino (Programmierung)">Rhino</a>, <a href="/wiki/WebKit#JavaScriptCore" title="WebKit">JavaScriptCore</a>, <a href="/wiki/V8_(JavaScript-Implementierung)" title="V8 (JavaScript-Implementierung)">V8</a> </td></tr> <tr> <td><b>Beeinflusst von:</b> </td> <td><a href="/wiki/Self_(Programmiersprache)" title="Self (Programmiersprache)">Self</a>, <a href="/wiki/C_(Programmiersprache)" title="C (Programmiersprache)">C</a>, <a href="/wiki/Scheme" title="Scheme">Scheme</a>, <a href="/wiki/Perl_(Programmiersprache)" title="Perl (Programmiersprache)">Perl</a>, <a href="/wiki/Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a>, <a href="/wiki/Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>, <a href="/wiki/Lua" title="Lua">Lua</a> </td></tr> <tr> <td><b>Beeinflusste:</b> </td> <td><a href="/wiki/ActionScript" title="ActionScript">ActionScript</a>, <a href="/wiki/Haxe_(Programmiersprache)" title="Haxe (Programmiersprache)">Haxe</a>, <a href="/wiki/CoffeeScript" title="CoffeeScript">CoffeeScript</a>, <a href="/wiki/Dart_(Programmiersprache)" title="Dart (Programmiersprache)">Dart</a>, <a href="/wiki/TypeScript" title="TypeScript">TypeScript</a> </td></tr> <tr> <td><b><a href="/wiki/Lizenz" title="Lizenz">Lizenz</a>:</b> </td> <td><a href="/wiki/BSD-Lizenz" title="BSD-Lizenz">BSD</a> </td></tr> <tr> <td colspan="2" class="hintergrundfarbe5" style="text-align:center;"><a rel="nofollow" class="external text" href="https://www.ecma-international.org/publications-and-standards/standards/ecma-262/">www.ecma-international.org/publications-and-standards/standards/ecma-262/</a> </td></tr></tbody></table> <p><b>JavaScript</b> (kurz <b>JS</b>) ist eine <a href="/wiki/Skriptsprache" title="Skriptsprache">Skriptsprache</a>, die ursprünglich 1995 von <a href="/wiki/Netscape_Communications" title="Netscape Communications">Netscape</a> für <a href="/wiki/Dynamisches_HTML" title="Dynamisches HTML">dynamisches HTML</a> in <a href="/wiki/Webbrowser" title="Webbrowser">Webbrowsern</a> entwickelt wurde, um Benutzerinteraktionen auszuwerten, Inhalte zu verändern, nachzuladen oder zu generieren und so die Möglichkeiten von <a href="/wiki/Hypertext_Markup_Language" title="Hypertext Markup Language">HTML</a> zu erweitern.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> Heute wird JavaScript auch außerhalb von Browsern angewendet, etwa auf Servern und in Microcontrollern.<sup id="cite_ref-Mikrocontroller_3-0" class="reference"><a href="#cite_note-Mikrocontroller-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-Dinge_4-0" class="reference"><a href="#cite_note-Dinge-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup> </p><p>Der heutige Name der ursprünglich <b>LiveScript</b> genannten Sprache entstand 1996 aus einer Kooperation von Netscape mit <a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>. Deren <a href="/wiki/Java-Applet" title="Java-Applet">Java-Applets</a>, erstellt mit der gleichfalls 1995 veröffentlichten Programmiersprache <a href="/wiki/Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>, wurden mithilfe von LiveScript in den <a href="/wiki/Netscape_Navigator" title="Netscape Navigator">Netscape Navigator</a> integriert. Um die Popularität von Java zu nutzen, wurde LiveScript in JavaScript umbenannt, obwohl die beiden Sprachen voneinander unabhängig entwickelt wurden und völlig unterschiedliche Grundkonzepte aufweisen. </p><p>Der als <b>ECMAScript</b> (<a href="/wiki/Ecma_International" title="Ecma International">ECMA</a> 262) standardisierte Sprachkern von JavaScript beschreibt eine <a href="/wiki/Dynamische_Typisierung" title="Dynamische Typisierung">dynamisch typisierte</a>, <a href="/wiki/Objektorientierte_Programmierung" title="Objektorientierte Programmierung">objektorientierte</a>, aber <a href="/wiki/Klasse_(Objektorientierung)" title="Klasse (Objektorientierung)">klassen</a>lose Skriptsprache. Sie wird allen objektorientierten <a href="/wiki/Programmierparadigma" title="Programmierparadigma">Programmierparadigmen</a> unter anderem auf der Basis von <a href="/wiki/Prototypenbasierte_Programmierung" title="Prototypenbasierte Programmierung">Prototypen</a> gerecht, deren <a href="/wiki/Deklaration_(Programmierung)" title="Deklaration (Programmierung)">Deklaration</a> ab ECMAScript&#160;6 mit einer Syntax ermöglicht wird, wie sie ähnlich auch bei klassenbasierten Programmiersprachen üblich ist. In JavaScript lässt sich je nach Bedarf <a href="/wiki/Objektorientierte_Programmierung" title="Objektorientierte Programmierung">objektorientiert</a>, <a href="/wiki/Prozedurale_Programmierung" title="Prozedurale Programmierung">prozedural</a> oder <a href="/wiki/Funktionale_Programmierung" title="Funktionale Programmierung">funktional</a> programmieren.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> </p> <div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="de" dir="ltr"><h2 id="mw-toc-heading">Inhaltsverzeichnis</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#Entwicklung"><span class="tocnumber">1</span> <span class="toctext">Entwicklung</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#Verwendung"><span class="tocnumber">2</span> <span class="toctext">Verwendung</span></a> <ul> <li class="toclevel-2 tocsection-3"><a href="#Typische_Anwendungsgebiete"><span class="tocnumber">2.1</span> <span class="toctext">Typische Anwendungsgebiete</span></a></li> <li class="toclevel-2 tocsection-4"><a href="#Missbrauch"><span class="tocnumber">2.2</span> <span class="toctext">Missbrauch</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-5"><a href="#Geschichte"><span class="tocnumber">3</span> <span class="toctext">Geschichte</span></a> <ul> <li class="toclevel-2 tocsection-6"><a href="#Versionsgeschichte_von_JavaScript"><span class="tocnumber">3.1</span> <span class="toctext">Versionsgeschichte von JavaScript</span></a></li> <li class="toclevel-2 tocsection-7"><a href="#Versionsgeschichte_von_ECMAScript_(ECMA-262)"><span class="tocnumber">3.2</span> <span class="toctext">Versionsgeschichte von ECMAScript (ECMA-262)</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-8"><a href="#Sicherheit"><span class="tocnumber">4</span> <span class="toctext">Sicherheit</span></a> <ul> <li class="toclevel-2 tocsection-9"><a href="#Sandbox-Prinzip"><span class="tocnumber">4.1</span> <span class="toctext">Sandbox-Prinzip</span></a></li> <li class="toclevel-2 tocsection-10"><a href="#Deaktivieren_von_JavaScript"><span class="tocnumber">4.2</span> <span class="toctext">Deaktivieren von JavaScript</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-11"><a href="#Sprachelemente"><span class="tocnumber">5</span> <span class="toctext">Sprachelemente</span></a> <ul> <li class="toclevel-2 tocsection-12"><a href="#Datentypen"><span class="tocnumber">5.1</span> <span class="toctext">Datentypen</span></a> <ul> <li class="toclevel-3 tocsection-13"><a href="#Primitive_Datentypen"><span class="tocnumber">5.1.1</span> <span class="toctext">Primitive Datentypen</span></a></li> <li class="toclevel-3 tocsection-14"><a href="#Nicht_primitive_Datentypen"><span class="tocnumber">5.1.2</span> <span class="toctext">Nicht primitive Datentypen</span></a></li> </ul> </li> <li class="toclevel-2 tocsection-15"><a href="#Kontrollstrukturen"><span class="tocnumber">5.2</span> <span class="toctext">Kontrollstrukturen</span></a> <ul> <li class="toclevel-3 tocsection-16"><a href="#if-else_(Bedingte_Anweisung)"><span class="tocnumber">5.2.1</span> <span class="toctext">if-else (Bedingte Anweisung)</span></a></li> <li class="toclevel-3 tocsection-17"><a href="#switch-Kontrollstruktur"><span class="tocnumber">5.2.2</span> <span class="toctext">switch-Kontrollstruktur</span></a></li> </ul> </li> <li class="toclevel-2 tocsection-18"><a href="#Variablen"><span class="tocnumber">5.3</span> <span class="toctext">Variablen</span></a> <ul> <li class="toclevel-3 tocsection-19"><a href="#Geltungsbereich_von_Variablen"><span class="tocnumber">5.3.1</span> <span class="toctext">Geltungsbereich von Variablen</span></a></li> </ul> </li> <li class="toclevel-2 tocsection-20"><a href="#Konstanten"><span class="tocnumber">5.4</span> <span class="toctext">Konstanten</span></a></li> <li class="toclevel-2 tocsection-21"><a href="#Funktionen"><span class="tocnumber">5.5</span> <span class="toctext">Funktionen</span></a> <ul> <li class="toclevel-3 tocsection-22"><a href="#Erzeugung"><span class="tocnumber">5.5.1</span> <span class="toctext">Erzeugung</span></a></li> <li class="toclevel-3 tocsection-23"><a href="#Beispiel"><span class="tocnumber">5.5.2</span> <span class="toctext">Beispiel</span></a></li> </ul> </li> <li class="toclevel-2 tocsection-24"><a href="#Objekte"><span class="tocnumber">5.6</span> <span class="toctext">Objekte</span></a> <ul> <li class="toclevel-3 tocsection-25"><a href="#Vordefinierte_Objekte"><span class="tocnumber">5.6.1</span> <span class="toctext">Vordefinierte Objekte</span></a></li> <li class="toclevel-3 tocsection-26"><a href="#Zugriff_auf_Objekteigenschaften_und_-methoden"><span class="tocnumber">5.6.2</span> <span class="toctext">Zugriff auf Objekteigenschaften und -methoden</span></a></li> <li class="toclevel-3 tocsection-27"><a href="#Objektliterale"><span class="tocnumber">5.6.3</span> <span class="toctext">Objektliterale</span></a></li> <li class="toclevel-3 tocsection-28"><a href="#Konstruktor-Funktionen"><span class="tocnumber">5.6.4</span> <span class="toctext">Konstruktor-Funktionen</span></a></li> <li class="toclevel-3 tocsection-29"><a href="#„Private“_Eigenschaften"><span class="tocnumber">5.6.5</span> <span class="toctext">„Private“ Eigenschaften</span></a></li> <li class="toclevel-3 tocsection-30"><a href="#Vererbung_über_Prototypen"><span class="tocnumber">5.6.6</span> <span class="toctext">Vererbung über Prototypen</span></a></li> <li class="toclevel-3 tocsection-31"><a href="#Fixierung_von_Objektstruktur_und_-inhalten"><span class="tocnumber">5.6.7</span> <span class="toctext">Fixierung von Objektstruktur und -inhalten</span></a></li> </ul> </li> <li class="toclevel-2 tocsection-32"><a href="#Delegationsprinzipien"><span class="tocnumber">5.7</span> <span class="toctext">Delegationsprinzipien</span></a></li> <li class="toclevel-2 tocsection-33"><a href="#Fehlerbehandlung"><span class="tocnumber">5.8</span> <span class="toctext">Fehlerbehandlung</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-34"><a href="#JavaScript-Bibliotheken"><span class="tocnumber">6</span> <span class="toctext">JavaScript-Bibliotheken</span></a></li> <li class="toclevel-1 tocsection-35"><a href="#JavaScript_&amp;_Suchmaschinenoptimierung_(SEO)"><span class="tocnumber">7</span> <span class="toctext">JavaScript &amp; Suchmaschinenoptimierung (SEO)</span></a></li> <li class="toclevel-1 tocsection-36"><a href="#Siehe_auch"><span class="tocnumber">8</span> <span class="toctext">Siehe auch</span></a></li> <li class="toclevel-1 tocsection-37"><a href="#Literatur"><span class="tocnumber">9</span> <span class="toctext">Literatur</span></a></li> <li class="toclevel-1 tocsection-38"><a href="#Weblinks"><span class="tocnumber">10</span> <span class="toctext">Weblinks</span></a> <ul> <li class="toclevel-2 tocsection-39"><a href="#Spezifikationen"><span class="tocnumber">10.1</span> <span class="toctext">Spezifikationen</span></a></li> <li class="toclevel-2 tocsection-40"><a href="#Dokumentationen"><span class="tocnumber">10.2</span> <span class="toctext">Dokumentationen</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-41"><a href="#Einzelnachweise"><span class="tocnumber">11</span> <span class="toctext">Einzelnachweise</span></a></li> </ul> </div> <div class="mw-heading mw-heading2"><h2 id="Entwicklung">Entwicklung</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=1" title="Abschnitt bearbeiten: Entwicklung" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=1" title="Quellcode des Abschnitts bearbeiten: Entwicklung"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Die <a href="/wiki/Syntax" title="Syntax">Syntax</a> von JavaScript ähnelt <a href="/wiki/C_(Programmiersprache)" title="C (Programmiersprache)">C</a>-Abkömmlingen. Trotz der Namens- und syntaktischen Ähnlichkeit hat JavaScript nur geringe Gemeinsamkeiten mit <a href="/wiki/Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>. So wird in JavaScript Vererbung nicht durch <a href="/wiki/Klasse_(Objektorientierung)" title="Klasse (Objektorientierung)">Klassen</a>, sondern durch <a href="/wiki/Prototypenbasierte_Programmierung" title="Prototypenbasierte Programmierung">Prototypen</a> unterstützt. </p><p>JavaScript wurde früher hauptsächlich <a href="/wiki/Client" title="Client">clientseitig</a> eingesetzt. JavaScript bzw. die ECMAScript-Implementierungen ermöglichen aber beispielsweise mit dem <a href="/wiki/Framework" title="Framework">Framework</a> <a href="/wiki/Node.js" title="Node.js">Node.js</a><sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup> und als <a href="/wiki/JScript" title="JScript">JScript</a> bzw. <a href="/wiki/JScript_.NET" title="JScript .NET">JScript .NET</a> in einer <a href="/wiki/Active_Server_Pages" title="Active Server Pages">ASP</a>- bzw. <a href="/wiki/ASP.NET" title="ASP.NET">ASP.NET</a>-Umgebung auf <a href="/wiki/Microsoft_Internet_Information_Services" title="Microsoft Internet Information Services">Microsoft Internet Information Services</a> auch serverseitige Anwendungen. Weitere Beispiele für serverseitige JavaScript-Programmierung sind POW und Jaxer, die auf der Mozilla-JavaScript-Engine <a href="/wiki/SpiderMonkey" title="SpiderMonkey">SpiderMonkey</a> aufsetzen, V8CGI, welches auf der JavaScript-Implementierung <a href="/wiki/V8_(JavaScript-Implementierung)" title="V8 (JavaScript-Implementierung)">V8</a> aufbaut und in den <a href="/wiki/Apache_HTTP_Server" title="Apache HTTP Server">Apache HTTP Server</a> integriert wird, sowie <a href="/wiki/QML" title="QML">QML</a>, eine erweiterte Form von JavaScript zum Zeichnen von Oberflächen und Animationen. </p><p>Die Sprache wird auch als Skriptsprache für Spiele und <a href="/wiki/Anwendungsprogramm" class="mw-redirect" title="Anwendungsprogramm">Anwendungsprogramme</a> eingesetzt, da der Sprachkern nur wenige Objekte enthält und dadurch der zur Ausführung von in JavaScript formulierten Skripten erforderliche <a href="/wiki/Interpreter" title="Interpreter">Interpreter</a> relativ klein gehalten werden kann. </p><p>Außerdem wird JavaScript als Verkehrssprache in der Datenbank <a href="/wiki/MongoDB" title="MongoDB">MongoDB</a> sowie in Microcontrollern eingesetzt.<sup id="cite_ref-Mikrocontroller_3-1" class="reference"><a href="#cite_note-Mikrocontroller-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-Dinge_4-1" class="reference"><a href="#cite_note-Dinge-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Verwendung">Verwendung</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=2" title="Abschnitt bearbeiten: Verwendung" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=2" title="Quellcode des Abschnitts bearbeiten: Verwendung"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Typische_Anwendungsgebiete">Typische Anwendungsgebiete</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=3" title="Abschnitt bearbeiten: Typische Anwendungsgebiete" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=3" title="Quellcode des Abschnitts bearbeiten: Typische Anwendungsgebiete"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Typische Anwendungsgebiete von JavaScript im Webbrowser sind: </p> <ul><li>dynamische Manipulation von Webseiten über das <a href="/wiki/Document_Object_Model" title="Document Object Model">Document Object Model</a></li> <li>Plausibilitätsprüfung (<a href="/wiki/Datenvalidierung" title="Datenvalidierung">Datenvalidierung</a>) von Formulareingaben noch vor der Übertragung zum Server</li> <li>Anzeige von Dialogfenstern</li> <li>Senden und Empfangen von Daten, ohne dass der Browser die Seite neu laden muss (<a href="/wiki/Ajax_(Programmierung)" title="Ajax (Programmierung)">Ajax</a>)</li> <li>Vorschlagen von Suchbegriffen während der Eingabe</li> <li><a href="/wiki/Werbebanner" title="Werbebanner">Werbebanner</a> oder Laufschriften</li> <li>Verschleierung von <a href="/wiki/E-Mail-Adresse" title="E-Mail-Adresse">E-Mail-Adressen</a> zur Bekämpfung von <a href="/wiki/Spam#Verschleierung_der_E-Mail-Adresse" title="Spam">Spam</a></li> <li>mehrere <a href="/wiki/Frame_(HTML)" title="Frame (HTML)">Frames</a> auf einmal wechseln oder die Seite aus dem Frameset lösen</li> <li>Schreib- und Lesezugriff auf <a href="/wiki/Cookie" class="mw-redirect" title="Cookie">Cookies</a> und den <a href="/wiki/Web_Storage" title="Web Storage">Web Storage</a> innerhalb des Browsers</li></ul> <div class="mw-heading mw-heading3"><h3 id="Missbrauch">Missbrauch</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=4" title="Abschnitt bearbeiten: Missbrauch" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=4" title="Quellcode des Abschnitts bearbeiten: Missbrauch"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Einige Anwendungen, die mit JavaScript möglich sind, agieren teilweise gegen den Wunsch des Benutzers oder widersprechen dem <a href="/wiki/Principle_of_Least_Surprise" title="Principle of Least Surprise">Prinzip der geringsten Überraschung</a>. Einige Browser bieten daher Funktionen an, die derartige JavaScript-Funktionen unterdrücken. </p><p>Beispiele: </p> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/Datei:Js-alert-warnung.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Js-alert-warnung.png/220px-Js-alert-warnung.png" decoding="async" width="220" height="89" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Js-alert-warnung.png/330px-Js-alert-warnung.png 1.5x, //upload.wikimedia.org/wikipedia/commons/a/ab/Js-alert-warnung.png 2x" data-file-width="377" data-file-height="152" /></a><figcaption>Hinweis im Firefox-Browser bei vielen Dialogfenstern</figcaption></figure> <ul><li>Verschleiern von Internetadressen, auf die ein <a href="/wiki/Hyperlink" title="Hyperlink">Link</a> verweist</li> <li>Deaktivieren des <a href="/wiki/Kontextmen%C3%BC" title="Kontextmenü">Kontextmenüs</a>, um zu erschweren, dass Bilder oder die gesamte Seite abgespeichert werden können</li> <li>Deaktivieren der <a href="/wiki/Zwischenablage" title="Zwischenablage">Kopierfunktion</a>, um zu erschweren, dass Texte oder Bilder kopiert werden können</li> <li>Unaufgeforderte (Werbe-)<a href="/wiki/Pop-up" title="Pop-up">Pop-ups</a> oder <a href="/wiki/Pop-under" title="Pop-under">Pop-unders</a> oder aufeinanderfolgende <a href="/wiki/Dialogfenster" class="mw-redirect" title="Dialogfenster">Dialogfenster</a>, die den Benutzer behindern</li> <li>Ungewolltes Schließen des Browserfensters</li> <li>Ungewollte Größenänderung des Browserfensters</li> <li>Barrierearme Webseiten zeichnen sich dadurch aus, dass sie auch bei abgeschaltetem JavaScript möglichst uneingeschränkt nutzbar bleiben. Teilweise schränkt das deaktivierte JavaScript die Benutzbarkeit einer Webseite ein.</li> <li>Maßnahmen, die an den Sicherheitseinstellungen des Browsers vorbei ein Wiedererkennen eines Benutzers bei einem späteren Besuch einer Website erlauben (siehe <a href="/wiki/Anonymit%C3%A4t_im_Internet#Browser-Profil" title="Anonymität im Internet">Anonymität im Internet</a>)</li> <li>Bei anfälligen Webanwendungen kann JavaScript auch von Dritten missbraucht werden, etwa per <a href="/wiki/Cross-Site-Scripting" title="Cross-Site-Scripting">XSS</a> (Codeeinschleusung).</li></ul> <div class="mw-heading mw-heading2"><h2 id="Geschichte">Geschichte</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=5" title="Abschnitt bearbeiten: Geschichte" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=5" title="Quellcode des Abschnitts bearbeiten: Geschichte"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Am 18. September 1995 veröffentlichte <a href="/wiki/Netscape_Communications" title="Netscape Communications">Netscape</a> mit der Vorversion des <a href="/wiki/Netscape_Navigator" title="Netscape Navigator">Navigators</a> 2.0 einen Browser mit einer eingebetteten Skriptsprache, die zu diesem Zeitpunkt <i>LiveScript</i> hieß und von <a href="/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a> entwickelt worden war. Die Sprache konnte u.&#160;a. Formulareingaben des Benutzers vor dem Absenden überprüfen. Am 4.&#160;Dezember 1995 verkündeten Netscape und <a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a> eine Kooperation, die die Interaktion von LiveScript direkt mit Java-Applets zum Ziel hatte. Sun entwickelte die nötigen Java-Klassen, Netscape die Schnittstelle <a href="/wiki/LiveConnect" title="LiveConnect">LiveConnect</a> und benannte die Sprache in <i>JavaScript</i> um (JavaScript 1.0).<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup> <i>JavaScript</i> ist seit der Übernahme von Sun Microsystems eine <a href="/wiki/Marke_(Recht)" title="Marke (Recht)">Marke</a> des Unternehmens <a href="/wiki/Oracle" title="Oracle">Oracle</a>.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup> </p><p>Mit der ersten <a href="/wiki/Beta-Version" class="mw-redirect" title="Beta-Version">Beta-Version</a> des Navigators 3.0 führte Netscape am 29.&#160;April 1996 JavaScript 1.1 ein. In selbiger Version gab es die Neuerungen, auf Bilder zugreifen und sogenannte <i>Rollover-Grafiken</i> erstellen zu können. <a href="/wiki/LiveConnect" title="LiveConnect">LiveConnect</a> war jetzt fester Bestandteil des Browsers. Mit der Beta-Version des <a href="/wiki/Internet_Explorer" title="Internet Explorer">Internet Explorers</a>&#160;3 stellte Microsoft im Mai 1996 seinen ersten JScript-fähigen Browser vor. Dies war der Beginn des <a href="/wiki/Browserkrieg" title="Browserkrieg">Browserkriegs</a>.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">&#91;</span>10<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">&#91;</span>11<span class="cite-bracket">&#93;</span></a></sup> </p><p>Mit der Ankündigung des <a href="/wiki/Netscape_Communicator" title="Netscape Communicator">Netscape Communicators</a> wurde JavaScript 1.2 am 15. Oktober 1996 veröffentlicht; der Netscape Communicator 4.0 mit JavaScript 1.2 erschien jedoch erst am 4. Juni 1997. Ebenfalls im Juni 1997 veröffentlichte die <a href="/wiki/Ecma_International" title="Ecma International">European Computer Manufacturers Association</a> ihren Standard ECMA-262 <i>(ECMAScript)</i>, der zusammen mit Netscape entwickelt worden war und die Grundelemente einer Skriptsprache standardisieren sollte. Diese wurde im April 1998 zur ISO-Norm <i>ISO/IEC 16262:1998 Information technology&#160;– ECMAScript language specification</i>. Am 1.&#160;Oktober 1997 kam der Internet Explorer&#160;4 heraus, der den Sprachumfang von JavaScript 1.1 abdeckte. Darüber hinaus wurden eigene Erweiterungen veröffentlicht, die zu Kompatibilitätsunterschieden zwischen Navigator und Internet Explorer führten und eine DOM-ähnliche Syntax zur Verfügung stellten, die es ermöglichte, auf alle Elemente der Webseite zuzugreifen und diese beliebig verändern zu können. </p><p>Der in Java implementierte JavaScript-Interpreter <a href="/wiki/Rhino_(Programmierung)" title="Rhino (Programmierung)">Rhino</a> wurde ab Version 6.0 als Teil der <a href="/wiki/Java-Laufzeitumgebung" title="Java-Laufzeitumgebung">Java-Laufzeitumgebung</a> standardmäßig mitgeliefert.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">&#91;</span>12<span class="cite-bracket">&#93;</span></a></sup> Im Juli 1998 wurde mit der Beta-Version des Netscape Communicators 4.5 JavaScript 1.3, welche schon in der Version 4.06 des Netscape Communicators vorhanden war, veröffentlicht.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">&#91;</span>13<span class="cite-bracket">&#93;</span></a></sup> Im Oktober 1998 stellte Netscape JavaScript 1.4 vor. Diese Version war vollständig kompatibel mit ECMA-262. Ein Browser mit der Unterstützung dieser Version erschien jedoch nicht.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">&#91;</span>14<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">&#91;</span>15<span class="cite-bracket">&#93;</span></a></sup> Im April 2000 kam mit der Preview Release 1 des Navigators 6 JavaScript 1.5 und DOM Level 1. Am 5. Juni 2002 erschien Mozilla 1.0 mit JavaScript 1.5 (JavaScript in der Version 1.5 entspricht ECMA-262 Version 3),<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">&#91;</span>16<span class="cite-bracket">&#93;</span></a></sup> am 29. November 2005 <a href="/wiki/Mozilla_Firefox" title="Mozilla Firefox">Mozilla Firefox</a> 1.5 mit JavaScript 1.6<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">&#91;</span>17<span class="cite-bracket">&#93;</span></a></sup>, am 12. Juli 2006 Mozilla Firefox 2.0b1 mit JavaScript 1.7<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">&#91;</span>18<span class="cite-bracket">&#93;</span></a></sup> und am 18. Dezember 2007 Mozilla Firefox 3.0b2 mit JavaScript 1.8.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">&#91;</span>19<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Versionsgeschichte_von_JavaScript">Versionsgeschichte von JavaScript</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=6" title="Abschnitt bearbeiten: Versionsgeschichte von JavaScript" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=6" title="Quellcode des Abschnitts bearbeiten: Versionsgeschichte von JavaScript"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable"> <caption>Versionsgeschichte<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">&#91;</span>20<span class="cite-bracket">&#93;</span></a></sup> </caption> <tbody><tr> <th>Version</th> <th>Veröffentlichung</th> <th>Entsprechung</th> <th>Netscape Navigator</th> <th>Mozilla Firefox</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> <th>Google Chrome </th></tr> <tr> <td class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="1.0.0"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 1.0.0</td> <td>März 1996</td> <td></td> <td>2.0</td> <td></td> <td>3.0</td> <td></td> <td></td> <td> </td></tr> <tr> <td class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="1.1.0"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 1.1.0</td> <td>August 1996</td> <td></td> <td>3.0</td> <td></td> <td></td> <td></td> <td></td> <td> </td></tr> <tr> <td class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="1.2.0"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 1.2.0</td> <td>Juni 1997</td> <td></td> <td>4.0–4.05</td> <td></td> <td></td> <td></td> <td></td> <td> </td></tr> <tr> <td class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="1.3.0"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 1.3.0</td> <td>Oktober 1998</td> <td>ECMA-262 1st edition / ECMA-262 2nd edition</td> <td>4.06–4.7x</td> <td></td> <td>4.0</td> <td></td> <td></td> <td> </td></tr> <tr> <td class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="1.4.0"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 1.4.0</td> <td></td> <td></td> <td>Netscape Server</td> <td></td> <td></td> <td></td> <td></td> <td> </td></tr> <tr> <td class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="1.5.0"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 1.5.0</td> <td>November 2000</td> <td>ECMA-262 3rd edition</td> <td>6.0</td> <td>1.0 </td> <td> <ul><li>5.5 (JScript 5.5)</li> <li>6 (JScript 5.6)</li> <li>7 (JScript 5.7)</li> <li>8 (JScript 6)</li></ul> </td> <td> <ul><li>6.0</li> <li>7.0</li> <li>8.0</li> <li>9.0</li></ul> </td> <td></td> <td> </td></tr> <tr> <td class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="1.6.0"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 1.6.0</td> <td>November 2005</td> <td>1.5 + Array extras + Array &amp; String generics + E4X</td> <td></td> <td>1.5</td> <td></td> <td> </td> <td> <ul><li>3.0</li> <li>3.1</li></ul> </td> <td> </td></tr> <tr> <td class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="1.7.0"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 1.7.0</td> <td>Oktober 2006</td> <td>1.6 + Pythonic generators + Iterators + let + destructuring assignments</td> <td></td> <td>2.0</td> <td></td> <td> </td> <td> <ul><li>3.2</li> <li>4.0</li></ul> </td> <td>1.0 </td></tr> <tr> <td class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="1.8.0"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 1.8.0</td> <td>Juni 2008</td> <td>1.7 + Generator expressions + Expression closures</td> <td></td> <td>3.0</td> <td></td> <td></td> <td></td> <td> </td></tr> <tr> <td class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="1.8.1"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 1.8.1</td> <td>Juni 2009</td> <td>1.8 + geringfügige Updates</td> <td></td> <td>3.5</td> <td></td> <td></td> <td></td> <td> </td></tr> <tr> <td class="vorlageVersion" style="background-color: #9DD12F;" title="Die aktuell stabile Version" data-sort-value="1.8.2"><span style="display: none;">Aktuelle Version:</span> <b>1.8.2</b></td> <td>Januar 2010</td> <td>1.8.1 + geringfügige Updates</td> <td></td> <td>3.6</td> <td></td> <td></td> <td></td> <td> </td></tr> <tr> <td class="vorlageVersion" style="background-color: #9DD12F;" title="Die aktuell stabile Version" data-sort-value="1.8.5"><span style="display: none;">Aktuelle Version:</span> <b>1.8.5</b></td> <td>Juli 2010</td> <td>1.8.1 + ECMAScript 5 Compliance</td> <td></td> <td>4</td> <td>9.0 (JScript 9.0)</td> <td></td> <td></td> <td> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Versionsgeschichte_von_ECMAScript_(ECMA-262)"><span id="Versionsgeschichte_von_ECMAScript_.28ECMA-262.29"></span>Versionsgeschichte von ECMAScript (ECMA-262)</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=7" title="Abschnitt bearbeiten: Versionsgeschichte von ECMAScript (ECMA-262)" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=7" title="Quellcode des Abschnitts bearbeiten: Versionsgeschichte von ECMAScript (ECMA-262)"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Die aktuelle Version ist die Version 2022, die im Juni 2022 als „ECMAScript 2022“ veröffentlicht wurde.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">&#91;</span>21<span class="cite-bracket">&#93;</span></a></sup> Dieser sollen jährliche Updates folgen.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">&#91;</span>22<span class="cite-bracket">&#93;</span></a></sup> Die Entwicklung der Standards erfolgt auf <a href="/wiki/GitHub" title="GitHub">GitHub</a>.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">&#91;</span>23<span class="cite-bracket">&#93;</span></a></sup> </p> <table class="wikitable"> <tbody><tr style="background:#CCCCFF;"> <th>Version </th> <th>publiziert am </th> <th>Unterschiede zur Vorgängerversion </th> <th>Editor </th></tr> <tr> <td align="center" class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="1"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 1 </td> <td>Juni 1997 </td> <td>erste Version </td> <td><a href="/wiki/Guy_L._Steele,_Jr." class="mw-redirect" title="Guy L. Steele, Jr.">Guy L. Steele, Jr.</a> </td></tr> <tr> <td align="center" class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="2"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 2 </td> <td>Juni 1998 </td> <td>Änderungen zwecks Kompatibilität zum internationalen Standard ISO/IEC 16262 </td> <td><a href="/wiki/Mike_Cowlishaw" class="mw-redirect" title="Mike Cowlishaw">Mike Cowlishaw</a> </td></tr> <tr> <td align="center" class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="3"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 3 </td> <td>Dez. 1999 </td> <td>Neu sind <a href="/wiki/Regul%C3%A4re_Ausdr%C3%BCcke" class="mw-redirect" title="Reguläre Ausdrücke">reguläre Ausdrücke</a>, bessere Verarbeitung von Zeichenketten, Kontrollfluss, Fehlerbehandlung mit try/catch, bessere Fehlerbehandlung, bessere Formatierung bei der Ausgabe von Zahlen usw. </td> <td>Mike Cowlishaw </td></tr> <tr> <td align="center" class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="4"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 4 </td> <td>abgebrochen </td> <td>Wegen Uneinigkeit in Bezug auf die Zukunft der Sprache wurde die weitere Entwicklung des komplexen Entwurfes zu ECMAScript 4 eingestellt. Einige Ideen werden in ES6 wieder aufleben. </td> <td> </td></tr> <tr> <td align="center" class="vorlageVersion" style="background-color: #F09278;" title="Eine ältere und nicht mehr unterstützte Version" data-sort-value="5"><span style="display: none;">Ältere Version; nicht mehr unterstützt:</span> 5 </td> <td>Dez. 2009 </td> <td>Im „strict mode“ wird eine erweiterte Fehlerprüfung eingeschaltet. Unklare Sprachkonstrukte von ECMAScript 3 werden entschärft und neue Features wie getter- und setter-Methoden, Unterstützung von <a href="/wiki/JSON" class="mw-redirect" title="JSON">JSON</a> usw. hinzugefügt.<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">&#91;</span>24<span class="cite-bracket">&#93;</span></a></sup> </td> <td><a href="/w/index.php?title=Pratap_Lakshman&amp;action=edit&amp;redlink=1" class="new" title="Pratap Lakshman (Seite nicht vorhanden)">Pratap Lakshman</a>, <a href="/w/index.php?title=Allen_Wirfs-Brock&amp;action=edit&amp;redlink=1" class="new" title="Allen Wirfs-Brock (Seite nicht vorhanden)">Allen Wirfs-Brock</a> </td></tr> <tr> <td align="center" class="vorlageVersion" style="background-color: #CEE482;" title="Eine ältere aber noch unterstützte Version" data-sort-value="5.1"><span style="display: none;">Ältere Version; noch unterstützt:</span> 5.1 </td> <td>Juni 2011 </td> <td>Entspricht dem internationalen Standard ISO/IEC 16262:2011, Version 3 </td> <td>Pratap Lakshman, Allen Wirfs-Brock </td></tr> <tr> <td class="vorlageVersion" style="background-color: #CEE482;" title="Eine ältere aber noch unterstützte Version" data-sort-value="2015"><span style="display: none;">Ältere Version; noch unterstützt:</span> 2015<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">&#91;</span>25<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">&#91;</span>26<span class="cite-bracket">&#93;</span></a></sup> </td> <td>Juni 2015 </td> <td>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.<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">&#91;</span>27<span class="cite-bracket">&#93;</span></a></sup> Neue Sprachbestandteile wie <code>for</code>/<code>of</code>-Schleifen, teilweise an <a href="/wiki/Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a> angelehnte Syntax usw. Der Codename lautet “Harmony” und wurde bis kurz vor Verabschiedung als „ECMAscript&#160;6“ bezeichnet.<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">&#91;</span>28<span class="cite-bracket">&#93;</span></a></sup> </td> <td>Allen Wirfs-Brock </td></tr> <tr> <td class="vorlageVersion" style="background-color: #CEE482;" title="Eine ältere aber noch unterstützte Version" data-sort-value="2016"><span style="display: none;">Ältere Version; noch unterstützt:</span> 2016<sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite-bracket">&#91;</span>29<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite-bracket">&#91;</span>30<span class="cite-bracket">&#93;</span></a></sup> </td> <td>Juni 2016 </td> <td><code>**</code> (<a href="/wiki/Potenzfunktion" title="Potenzfunktion">Potenzfunktion</a>), <code>Array.prototype.includes</code>, diverse Anpassungen an Generatoren, destruktiven Zuweisungen<sup id="cite_ref-kangax_31-0" class="reference"><a href="#cite_note-kangax-31"><span class="cite-bracket">&#91;</span>31<span class="cite-bracket">&#93;</span></a></sup> </td> <td><a href="/w/index.php?title=Brian_Terlson&amp;action=edit&amp;redlink=1" class="new" title="Brian Terlson (Seite nicht vorhanden)">Brian Terlson</a> </td></tr> <tr> <td class="vorlageVersion" style="background-color: #CEE482;" title="Eine ältere aber noch unterstützte Version" data-sort-value="2017"><span style="display: none;">Ältere Version; noch unterstützt:</span> 2017<sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">&#91;</span>32<span class="cite-bracket">&#93;</span></a></sup> </td> <td>Juni 2017 </td> <td><code>async</code>/<code>await</code>, diverse <code>Object</code>-Funktionen<sup id="cite_ref-kangax_31-1" class="reference"><a href="#cite_note-kangax-31"><span class="cite-bracket">&#91;</span>31<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">&#91;</span>33<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">&#91;</span>34<span class="cite-bracket">&#93;</span></a></sup> </td> <td>Brian Terlson </td></tr> <tr> <td class="vorlageVersion" style="background-color: #CEE482;" title="Eine ältere aber noch unterstützte Version" data-sort-value="2018"><span style="display: none;">Ältere Version; noch unterstützt:</span> 2018 </td> <td>Juni 2018<sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">&#91;</span>35<span class="cite-bracket">&#93;</span></a></sup> </td> <td><code>global</code>, <code>import()</code>, Rest/Spread Properties, <code>for</code>-<code>await</code>-<code>of</code> (Asynchronous Iterators), <a href="/wiki/Padding_(Informatik)" title="Padding (Informatik)">String-Padding</a>, …<sup id="cite_ref-36" class="reference"><a href="#cite_note-36"><span class="cite-bracket">&#91;</span>36<span class="cite-bracket">&#93;</span></a></sup> </td> <td>Brian Terlson </td></tr> <tr> <td class="vorlageVersion" style="background-color: #CEE482;" title="Eine ältere aber noch unterstützte Version" data-sort-value="2019"><span style="display: none;">Ältere Version; noch unterstützt:</span> 2019 </td> <td>Juni 2019 </td> <td><code>Array#{flat,flatMap}</code>, <code>Object.fromEntries</code>, <code>String#{trimStart,trimEnd}</code>, <code>Symbol#description</code>, …<sup id="cite_ref-37" class="reference"><a href="#cite_note-37"><span class="cite-bracket">&#91;</span>37<span class="cite-bracket">&#93;</span></a></sup> </td> <td>Brian Terlson, Bradley Farias, Jordan Harband </td></tr> <tr> <td class="vorlageVersion" style="background-color: #CEE482;" title="Eine ältere aber noch unterstützte Version" data-sort-value="2020"><span style="display: none;">Ältere Version; noch unterstützt:</span> 2020 </td> <td>Juni 2020 </td> <td><code>String.matchAll</code>, <code>BigInt</code>, <code>import()</code>, …<sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">&#91;</span>38<span class="cite-bracket">&#93;</span></a></sup> </td> <td>Jordan Harband, Kevin Smith </td></tr> <tr> <td class="vorlageVersion" style="background-color: #CEE482;" title="Eine ältere aber noch unterstützte Version" data-sort-value="2021"><span style="display: none;">Ältere Version; noch unterstützt:</span> 2021 </td> <td>Juni 2021 </td> <td><code>String.prototype.replaceAll</code>, <code>WeakRef</code>s, Logical Assignment Operators, …<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">&#91;</span>39<span class="cite-bracket">&#93;</span></a></sup> </td> <td>Jordan Harband, Shu-yu Guo, Michael Ficarra, Kevin Gibbons </td></tr> <tr> <td class="vorlageVersion" style="background-color: #CEE482;" title="Eine ältere aber noch unterstützte Version" data-sort-value="2022"><span style="display: none;">Ältere Version; noch unterstützt:</span> 2022<sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite-bracket">&#91;</span>40<span class="cite-bracket">&#93;</span></a></sup> </td> <td>Juni 2022 </td> <td>Private Methoden und Felder in Klassen, Statische Initialisierungs-Blöcke in Klassen, <code>await</code> außerhalb von <code>async</code>-Funktionen, …<sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">&#91;</span>41<span class="cite-bracket">&#93;</span></a></sup> </td> <td>Shu-yu Guo, Michael Ficarra, Kevin Gibbons </td></tr> <tr> <td class="vorlageVersion" style="background-color: #9DD12F;" title="Die aktuell stabile Version" data-sort-value="2023"><span style="display: none;">Aktuelle Version:</span> <b>2023</b> </td> <td>Juni 2023 </td> <td>Hashbang-Grammar, Symbole für WeakMaps, neue Array-Funktionen </td> <td> </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Sicherheit">Sicherheit</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=8" title="Abschnitt bearbeiten: Sicherheit" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=8" title="Quellcode des Abschnitts bearbeiten: Sicherheit"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Sandbox-Prinzip">Sandbox-Prinzip</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=9" title="Abschnitt bearbeiten: Sandbox-Prinzip" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=9" title="Quellcode des Abschnitts bearbeiten: Sandbox-Prinzip"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>JavaScript wird im Browser in einer sogenannten <a href="/wiki/Sandbox" title="Sandbox">Sandbox</a> ausgeführt. Dies soll bewirken, dass man in JavaScript nur Zugriff auf die Objekte des Browsers hat und nicht auf das <a href="/wiki/Dateisystem" title="Dateisystem">Dateisystem</a> zugreifen kann. Eine Ausnahme stellt der Lesezugriff auf eine <a href="/wiki/Datei" title="Datei">Datei</a> dar, die per Dateiauswahl-Dialog, gestartet mit dem HTML-Element <code>&lt;input type="file"&gt;</code>, vom Benutzer ausgewählt wurde. </p><p>Um Sicherheitsprobleme wie das sogenannte <a href="/wiki/Cross-Site-Scripting" title="Cross-Site-Scripting">Cross-Site-Scripting</a> zu verhindern, wird jede <a href="/wiki/Website" title="Website">Website</a> oder <a href="/wiki/Webanwendung" title="Webanwendung">Webanwendung</a> innerhalb des Browsers isoliert ausgeführt und ein Datenaustausch unterbunden. Ohne diesen Schutz wäre es möglich, über eine Seite <a href="/wiki/Schadcode" class="mw-redirect" title="Schadcode">Schadcode</a> auszuführen, der beispielsweise Bank- oder Logindaten in anderen parallel geöffneten Browserfenstern ausliest oder manipuliert. </p><p>Auch bestimmte sicherheitsrelevante Browserfunktionen wie das Schließen des Browserfensters, das Aus- und Einblenden von <a href="/wiki/Symbolleiste" title="Symbolleiste">Symbolleisten</a>, das Ändern der Browserstartseite, der Zugriff auf die <a href="/wiki/Zwischenablage" title="Zwischenablage">Zwischenablage</a> oder das Auslesen der zuletzt besuchten Webseiten des Anwenders werden durch obligatorische Nutzereingaben geschützt. </p><p>Standardmäßig wird ein Skript innerhalb eines Browsers in Form eines einzigen <a href="/wiki/Thread_(Informatik)" title="Thread (Informatik)">Threads</a> ausgeführt. Warteschleifen oder lange Berechnungen sind daher in JavaScript-Programmen zu vermeiden. Mit <a href="/wiki/Web_Worker" title="Web Worker"><code>Worker</code>-Objekten</a> ist es möglich, weitere Threads zu erzeugen.<sup id="cite_ref-42" class="reference"><a href="#cite_note-42"><span class="cite-bracket">&#91;</span>42<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Deaktivieren_von_JavaScript">Deaktivieren von JavaScript</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=10" title="Abschnitt bearbeiten: Deaktivieren von JavaScript" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=10" title="Quellcode des Abschnitts bearbeiten: Deaktivieren von JavaScript"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In vielen JavaScript-fähigen Browsern lässt sich JavaScript abschalten oder lassen sich einzelne Aktionen wie die Änderung des Textes in der <a href="/wiki/Statusleiste" title="Statusleiste">Statusleiste</a> oder die Manipulation von Browserfenstern deaktivieren. Dies kann bei einigen Browsern mittels Erweiterungen, die JavaScript anhand von <a href="/wiki/Wei%C3%9Fe_Liste" title="Weiße Liste">White-</a> und <a href="/wiki/Schwarze_Liste" title="Schwarze Liste">Blacklists</a> gezielt auf Seiten ein- und ausschalten, auch automatisiert werden. Daher können sich Entwickler nicht darauf verlassen, dass JavaScript-Programme sich in jeder Umgebung gleich verhalten bzw. überhaupt funktionieren. </p> <div class="sieheauch" role="navigation" style="font-style:italic;"><span class="sieheauch-text">Siehe auch</span>: <a href="/wiki/Unobtrusive_JavaScript" title="Unobtrusive JavaScript">Unobtrusive JavaScript</a></div> <div class="mw-heading mw-heading2"><h2 id="Sprachelemente">Sprachelemente</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=11" title="Abschnitt bearbeiten: Sprachelemente" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=11" title="Quellcode des Abschnitts bearbeiten: Sprachelemente"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Datentypen">Datentypen</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=12" title="Abschnitt bearbeiten: Datentypen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=12" title="Quellcode des Abschnitts bearbeiten: Datentypen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>JavaScript ist <a href="/wiki/Dynamische_Typisierung" title="Dynamische Typisierung">dynamisch typisiert</a>. Das bedeutet, dass die Zuweisung von Werten an Variablen keinen <a href="/wiki/Datentyp" title="Datentyp">typbasierten</a> Einschränkungen unterliegt. Allerdings gibt es diverse Erweiterungen von JavaScript, die eine <a href="/wiki/Statische_Typisierung" title="Statische Typisierung">statische Typisierung</a> optional beziehungsweise zwingend erfordern, zum Beispiel <a href="/wiki/TypeScript" title="TypeScript">TypeScript</a> von <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a>.<sup id="cite_ref-43" class="reference"><a href="#cite_note-43"><span class="cite-bracket">&#91;</span>43<span class="cite-bracket">&#93;</span></a></sup> </p><p>Aufgrund der dynamischen Typisierung ist der <a href="/wiki/Datentyp" title="Datentyp">Datentyp</a> keine Eigenschaft einer Variablen, sondern Laufzeit-bezogen die Eigenschaft ihres aktuellen Wertes (oder auch die Eigenschaft eines <a href="/wiki/Literal" title="Literal">Literals</a>). Der Datentyp eines Wertes lässt sich mit dem <a href="/wiki/Einstellige_Verkn%C3%BCpfung" title="Einstellige Verknüpfung">unären</a> Operator <code>typeof</code> ermitteln. </p> <div class="mw-heading mw-heading4"><h4 id="Primitive_Datentypen">Primitive Datentypen</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=13" title="Abschnitt bearbeiten: Primitive Datentypen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=13" title="Quellcode des Abschnitts bearbeiten: Primitive Datentypen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Zu den <a href="/wiki/Datentyp#Elementare_Datentypen" title="Datentyp">primitiven Datentypen</a> in JavaScript gehören Zahlen, Zeichenketten, boolesche Werte, Symbole, null und undefined. </p> <ul><li>Numerische Werte können entweder den Typ <i>Number</i> (angezeigt durch <code>typeof</code> als <code>"number"</code>) oder <i>BigInt</i> haben (angezeigt durch <code>typeof</code> als <code>"bigint"</code>). Während der Datentyp <i>Number</i> für Gleitkommazahlen verwendet wird, ermöglicht der Datentyp <i>BigInt</i> die Darstellung ganzer Zahlen beliebiger Größe, die den Bereich überschreiten, den <i>Number</i> abdecken kann.</li> <li><a href="/wiki/Zeichenkette" title="Zeichenkette">Zeichenketten</a> haben den Typ <i>String</i> (angezeigt durch <code>typeof</code> als <code>"string"</code>).</li> <li><a href="/wiki/Boolean" title="Boolean">Boolesche Werte</a> haben den Typ <i>Boolean</i> (angezeigt durch <code>typeof</code> als <code>"boolean"</code>)</li> <li><a href="/wiki/Symbol_(Informatik)" title="Symbol (Informatik)">Symbole</a> haben den Typ <i>Symbol</i> (angezeigt durch <code>typeof</code> als <code>"symbol"</code>) und fungieren als eindeutige <a href="/wiki/Identifikator" title="Identifikator">Identifikatoren</a>, werden jedoch seltener verwendet.</li> <li>Der Typ <i>Null</i> hat nur den Wert <code>null</code> (<code>typeof</code> liefert <code>"object"</code>, was historisch bedingt ist).</li> <li>Der Typ <i>Undefined</i> hat nur den Wert <code>undefined</code> (<code>typeof</code> liefert <code>"undefined"</code>).</li></ul> <div class="mw-heading mw-heading4"><h4 id="Nicht_primitive_Datentypen">Nicht primitive Datentypen</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=14" title="Abschnitt bearbeiten: Nicht primitive Datentypen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=14" title="Quellcode des Abschnitts bearbeiten: Nicht primitive Datentypen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Funktionen sind kein primitiver Typ (<code>typeof</code> liefert <code>"function"</code>). Für alle anderen Werte – reguläre Ausdrücke, Arrays und den Wert <code>null</code> inbegriffen – liefert <code>typeof</code> den Zeichenketten-Wert <code>"object"</code> zurück. Es ist zu beachten, dass null ein primitiver Datentyp ist, auch wenn <code>typeof</code> für <code>null</code> aus historischen Gründen den Wert "object" liefert. Im Gegensatz zu anderen Programmiersprachen gibt es in JavaScript keine echten <a href="/wiki/Assoziatives_Datenfeld" class="mw-redirect" title="Assoziatives Datenfeld">assoziativen Arrays</a>.<sup id="cite_ref-44" class="reference"><a href="#cite_note-44"><span class="cite-bracket">&#91;</span>44<span class="cite-bracket">&#93;</span></a></sup> </p><p>Objekte, die durch die vordefinierten <a href="/wiki/Konstruktor" class="mw-redirect" title="Konstruktor">Konstruktorfunktionen</a> <code>String()</code>, <code>Number()</code> und <code>Boolean()</code> erzeugt werden, verhalten sich ähnlich wie Werte der entsprechenden primitiven Datentypen. Allerdings gibt der <code>typeof</code>-Operator für solche Objekte den Wert <code>"object"</code> zurück. Diese Art von Objekten wird als <a href="/wiki/Wrapper-Klasse" title="Wrapper-Klasse">Wrapper-Objekte</a> bezeichnet. Für den Datentyp <i>Symbol</i> existiert keine gleichnamige Konstruktorfunktion. Im Folgenden finden wir ein Beispiel einer Variablen und dem entsprechenden Wrapper-Objekt: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="nx">simpleString</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;Beispieltext&quot;</span><span class="p">;</span> <span class="c1">// Die Funktion &quot;alert&quot; gibt das Ergebnis &quot;string&quot; in einem Fenster aus.</span> <span class="nx">alert</span><span class="p">(</span><span class="ow">typeof</span><span class="w"> </span><span class="nx">simpleString</span><span class="p">);</span> <span class="kd">let</span><span class="w"> </span><span class="nx">stringObject</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">String</span><span class="p">(</span><span class="s2">&quot;Beispieltext&quot;</span><span class="p">);</span> <span class="nx">alert</span><span class="p">(</span><span class="ow">typeof</span><span class="w"> </span><span class="nx">stringObject</span><span class="p">);</span><span class="w"> </span><span class="c1">// ergibt &quot;object&quot;</span> </pre></div> <p>Umgekehrt werden Werte der primitiven Typen <i>Number</i>, <i>Boolean</i> und <i>String</i> bei Bedarf automatisch in Objekte der entsprechenden Konstruktorfunktion umgewandelt: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="nx">simpleString</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;Beispieltext&quot;</span><span class="p">;</span> <span class="nx">alert</span><span class="p">(</span><span class="nx">simpleString</span><span class="p">.</span><span class="nx">length</span><span class="p">);</span><span class="w"> </span><span class="c1">// ergibt 12</span> </pre></div> <p>In diesem Beispiel wird die Eigenschaft <code>length</code> aufgerufen, obwohl <code>simpleString</code> ein primitiver String ist. JavaScript wandelt automatisch den primitiven String in ein temporäres String-Objekt um, um die Eigenschaft <code>length</code> abzurufen." </p> <div class="mw-heading mw-heading3"><h3 id="Kontrollstrukturen">Kontrollstrukturen</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=15" title="Abschnitt bearbeiten: Kontrollstrukturen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=15" title="Quellcode des Abschnitts bearbeiten: Kontrollstrukturen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>JavaScript kennt die üblichen <a href="/wiki/Kontrollstruktur" title="Kontrollstruktur">Kontrollstrukturen</a>. Sollen diese mehr als eine <a href="/wiki/Anweisung_(Programmierung)" title="Anweisung (Programmierung)">Anweisung</a> enthalten, so muss ein in <a href="/wiki/Geschweifte_Klammer" class="mw-redirect" title="Geschweifte Klammer">geschweifte Klammern</a> eingeschlossener <a href="/wiki/Blockstruktur" title="Blockstruktur">Block</a> eingesetzt werden. Anweisungen werden mit einem Semikolon abgeschlossen. Dies ist aber in den meisten Fällen optional; durch die <i><a href="/wiki/Automatic_semicolon_insertion" title="Automatic semicolon insertion">automatic semicolon insertion</a></i> wird es meist automatisch ergänzt. </p> <div class="mw-heading mw-heading4"><h4 id="if-else_(Bedingte_Anweisung)"><span id="if-else_.28Bedingte_Anweisung.29"></span>if-else (Bedingte Anweisung)</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=16" title="Abschnitt bearbeiten: if-else (Bedingte Anweisung)" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=16" title="Quellcode des Abschnitts bearbeiten: if-else (Bedingte Anweisung)"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">bedingung</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">anweisungen</span><span class="p">;</span> <span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">anweisungen</span><span class="p">;</span> <span class="p">}</span> </pre></div> <p>Kurzschreibweise für bedingte Wertzuweisungen: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">variable</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">bedingung</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="nx">wertWennWahr</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="nx">wertWennFalsch</span><span class="p">;</span> </pre></div> <div class="mw-heading mw-heading4"><h4 id="switch-Kontrollstruktur">switch-Kontrollstruktur</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=17" title="Abschnitt bearbeiten: switch-Kontrollstruktur" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=17" title="Quellcode des Abschnitts bearbeiten: switch-Kontrollstruktur"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="nx">variable</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="nx">wert1</span><span class="o">:</span> <span class="w"> </span><span class="nx">anweisungen</span><span class="p">;</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="nx">wert2</span><span class="o">:</span> <span class="w"> </span><span class="nx">anweisungen</span><span class="p">;</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">default</span><span class="o">:</span> <span class="w"> </span><span class="nx">anweisungen</span><span class="p">;</span> <span class="p">}</span> </pre></div> <p><b><a href="/wiki/While-Schleife" class="mw-redirect" title="While-Schleife">while-Schleife</a></b> </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nx">bedingung</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">anweisungen</span><span class="p">;</span> <span class="p">}</span> </pre></div> <p><b><a href="/wiki/Do-while-Schleife" class="mw-redirect" title="Do-while-Schleife">do-while-Schleife</a></b> </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="k">do</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">anweisungen</span><span class="p">;</span> <span class="p">}</span><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nx">bedingung</span><span class="p">);</span> </pre></div> <p><b><a href="/wiki/For-Schleife" title="For-Schleife">for-Schleife</a></b> </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="nx">startausdruck</span><span class="p">;</span><span class="w"> </span><span class="nx">bedingung</span><span class="p">;</span><span class="w"> </span><span class="nx">iterationsausdruck</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">anweisungen</span><span class="p">;</span> <span class="p">}</span> </pre></div> <p><b>for … in-Schleife</b> </p><p>Mit dieser Anweisung werden alle eigenen und ererbten Eigenschaften eines Objektes durchlaufen, die das interne Attribut Enumerable aufweisen.<sup id="cite_ref-45" class="reference"><a href="#cite_note-45"><span class="cite-bracket">&#91;</span>45<span class="cite-bracket">&#93;</span></a></sup> Dieses Attribut wurde in ECMA Script&#160;5 eingeführt und ist für bestimmte eingebaute Eigenschaften (wie z.&#160;B. die Funktion toString des Prototyps Object) nicht gesetzt, es kann allerdings im Regelfall vom Benutzer gesetzt (und entfernt) werden.<sup id="cite_ref-46" class="reference"><a href="#cite_note-46"><span class="cite-bracket">&#91;</span>46<span class="cite-bracket">&#93;</span></a></sup> Bei jedem Schleifendurchgang wird einer angegebenen Variable der Eigenschaftsname zugewiesen. </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">eigenschaftsname</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="nx">objekt</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">anweisungen</span><span class="p">;</span> <span class="p">}</span> </pre></div> <p><b>for … of-Schleife</b> </p><p>Diese Kontrollstruktur funktioniert wie eine for … in-Schleife, mit dem Unterschied, dass hier der angegebenen Variable nicht der Eigenschaftsname, sondern der Eigenschaftswert zugewiesen wird.<sup id="cite_ref-47" class="reference"><a href="#cite_note-47"><span class="cite-bracket">&#91;</span>47<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">wert</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">objekt</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">anweisungen</span><span class="p">;</span> <span class="p">}</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Variablen">Variablen</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=18" title="Abschnitt bearbeiten: Variablen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=18" title="Quellcode des Abschnitts bearbeiten: Variablen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Variablen sollten in JavaScript mit <code>let</code> oder <code>var</code> deklariert werden und sind dann innerhalb des <a href="/wiki/Variable_(Programmierung)#Sichtbarkeitsbereich_von_Variablen_(Scope)" title="Variable (Programmierung)">Scopes</a> gültig, in dem sie deklariert wurden, wobei <code>let</code> den Scope weiter eingrenzt als <code>var</code>.<sup id="cite_ref-48" class="reference"><a href="#cite_note-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup> Verwendet man Variablen ohne sie vorher explizit zu deklarieren, werden diese implizit als Eigenschaften des globalen Objekts (im Browser <code>window</code>) deklariert; dieses Verhalten kann man durch die Anweisung <code>"use strict";</code> unterbinden. Eine Besonderheit von JavaScript ist das <a href="/wiki/Hoisting" title="Hoisting">Hoisting</a> von Variablen, das dafür sorgt, dass sämtliche in einem Codeabschnitt deklarierten Variablen und Funktionen bei der Abarbeitung automatisch direkt an den Anfang vorgezogen werden (nur die Deklaration, nicht aber deren Wertzuweisung). </p> <div class="mw-heading mw-heading4"><h4 id="Geltungsbereich_von_Variablen">Geltungsbereich von Variablen</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=19" title="Abschnitt bearbeiten: Geltungsbereich von Variablen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=19" title="Quellcode des Abschnitts bearbeiten: Geltungsbereich von Variablen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In JavaScript gibt es globale und lokale Variablen abhängig davon, wo sie deklariert werden und wie sie verwendet werden. </p> <ul><li>Globale Variablen:</li></ul> <p>Variablen, die außerhalb von Funktionen deklariert werden, sind global gültig. Im Browser bedeutet <i>global</i>, dass solche Variablen auf der gesamten Webseite und in allen aktiven JavaScript-Dateien zugänglich sind. Dies kann zu unerwünschten Nebeneffekten führen, insbesondere wenn andere Skripte wie Drittanbieter-Plugins, <a href="/wiki/Web_Analytics" title="Web Analytics">Web Analytics</a> oder Werbebannern eingebunden sind. Daher sollten globale Variablen nach Möglichkeit vermieden werden. </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="nx">explicit</span><span class="p">;</span><span class="w"> </span><span class="c1">// Explizite Deklaration einer globalen Variable</span> <span class="nx">explicit</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;explizit deklariert&quot;</span><span class="p">;</span><span class="w"> </span><span class="c1">// Definition einer globalen Variable</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">explicit</span><span class="p">);</span><span class="w"> </span><span class="c1">// Ausgabe: explizit deklariert</span> </pre></div> <p>Implizit deklarierte Variablen sind immer global. Auch wenn eine Variable innerhalb einer Funktion implizit ohne <code>let</code> oder <code>var</code> deklariert wurde, wird sie automatisch zu einer globalen Variable. </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">function</span><span class="w"> </span><span class="nx">foo</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">implicit</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;implizit deklariert&quot;</span><span class="p">;</span><span class="w"> </span><span class="c1">// Definition einer globalen Variable</span> <span class="p">}</span> <span class="nx">foo</span><span class="p">();</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">implicit</span><span class="p">);</span><span class="w"> </span><span class="c1">// Ausgabe: implizit deklariert</span> </pre></div> <p>Eine implizit deklarierte Variable wird automatisch zu einer Eigenschaft des <code>globalThis</code>-Objekts. Das trifft bei explizit deklarierten globalen Variablen nicht zu. </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nb">globalThis</span><span class="p">.</span><span class="nx">implicit</span><span class="p">);</span><span class="w"> </span><span class="c1">// Ausgabe: implizit deklariert</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="ow">typeof</span><span class="w"> </span><span class="nb">globalThis</span><span class="p">.</span><span class="nx">explicit</span><span class="p">);</span><span class="w"> </span><span class="c1">// Ausgabe: undefined</span> </pre></div> <ul><li>Lokaler Geltungsbereich:</li></ul> <p>Variablen, die innerhalb von Funktionen deklariert oder als Funktionsparameter verwendet werden, haben einen lokalen Geltungsbereich. Das bedeutet, dass sie nur innerhalb der Funktion sichtbar und zugänglich sind. </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">function</span><span class="w"> </span><span class="nx">bar</span><span class="p">(</span><span class="nx">parameter</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// Deklaration eines Funktionsparameters</span> <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">variable</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;lokale Variable&quot;</span><span class="w"> </span><span class="c1">// Deklaration einer lokalen Variablen</span> <span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">parameter</span><span class="p">);</span> <span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">variable</span><span class="p">);</span><span class="w"> </span><span class="c1">// Ausgabe: lokale Variable</span> <span class="p">}</span> <span class="nx">bar</span><span class="p">(</span><span class="s2">&quot;lokaler Parameter&quot;</span><span class="p">);</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="ow">typeof</span><span class="w"> </span><span class="nx">parameter</span><span class="p">);</span><span class="w"> </span><span class="c1">// Ausgabe: undefined</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="ow">typeof</span><span class="w"> </span><span class="nx">variable</span><span class="p">);</span><span class="w"> </span><span class="c1">// Ausgabe: undefined</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Konstanten">Konstanten</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=20" title="Abschnitt bearbeiten: Konstanten" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=20" title="Quellcode des Abschnitts bearbeiten: Konstanten"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Konstanten sollen mit <code>const</code> deklariert werden, bei der Initialisierung muss ihnen ein Wert zugewiesen werden. Für den Gültigkeitsbereich gelten dieselben Bedingungen wie bei Variablendeklarationen mit <code>let</code>. Konstanten können nicht durch erneute Zuweisung verändert werden, allerdings können – wenn es sich bei der Konstanten um Objekte handelt – einzelne Eigenschaften der Konstanten geändert werden.<sup id="cite_ref-49" class="reference"><a href="#cite_note-49"><span class="cite-bracket">&#91;</span>49<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Funktionen">Funktionen</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=21" title="Abschnitt bearbeiten: Funktionen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=21" title="Quellcode des Abschnitts bearbeiten: Funktionen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In JavaScript sind Funktionen vollwertige Objekte mit eigenen Methoden und Eigenschaften. Sie können erstellt, überschrieben, als Argumente an andere Funktionen übergeben und von diesen erzeugt und zurückgegeben werden. </p><p>Im letzteren Fall entsteht eine <a href="/wiki/Closure_(Funktion)" title="Closure (Funktion)">Closure</a>, auch Funktionsabschluss genannt, die beispielsweise <a href="/wiki/Datenkapselung_(Programmierung)" title="Datenkapselung (Programmierung)">Datenkapselung</a> ermöglicht: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">function</span><span class="w"> </span><span class="nx">createGreeting</span><span class="p">(</span><span class="nx">name</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">message</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;Hallo, &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">name</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s2">&quot;!&quot;</span><span class="p">;</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kd">function</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">message</span><span class="p">;</span> <span class="w"> </span><span class="p">};</span> <span class="p">}</span> <span class="c1">// &#39;greetAda&#39; ist eine Funktion, die von &#39;createGreeting&#39; zurückgegeben wird</span> <span class="kd">let</span><span class="w"> </span><span class="nx">greetAda</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">createGreeting</span><span class="p">(</span><span class="s2">&quot;Ada Lovelace&quot;</span><span class="p">);</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">greetAda</span><span class="p">());</span><span class="w"> </span><span class="c1">// Ausgabe: Hallo, Ada Lovelace!</span> <span class="c1">// &#39;greetAlan&#39; ist eine Funktion, die von &#39;createGreeting&#39; zurückgegeben wird</span> <span class="kd">let</span><span class="w"> </span><span class="nx">greetAlan</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">createGreeting</span><span class="p">(</span><span class="s2">&quot;Alan Turing&quot;</span><span class="p">);</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">greetAlan</span><span class="p">());</span><span class="w"> </span><span class="c1">// Ausgabe: Hallo, Alan Turing!</span> <span class="c1">// Der Zugriff auf den Wert &#39;message&#39; ist von außen nicht möglich</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="ow">typeof</span><span class="w"> </span><span class="nx">message</span><span class="p">);</span><span class="w"> </span><span class="c1">// Ausgabe: undefined</span> </pre></div> <p>Nicht jedes Argument einer Funktion muss beim Aufruf angegeben werden. Fehlende Argumente erhalten den Wert <i>undefined</i>. Seit ECMAScript 2015 können Parameter auch mit Standardwerten definiert werden. Außerdem ermöglicht das <code>arguments</code>-Objekt den Zugriff auf die Argumente innerhalb der Funktion. </p> <div class="mw-heading mw-heading4"><h4 id="Erzeugung">Erzeugung</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=22" title="Abschnitt bearbeiten: Erzeugung" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=22" title="Quellcode des Abschnitts bearbeiten: Erzeugung"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Es gibt mehrere Möglichkeiten, in JavaScript Funktionen zu erzeugen:<sup id="cite_ref-50" class="reference"><a href="#cite_note-50"><span class="cite-bracket">&#91;</span>50<span class="cite-bracket">&#93;</span></a></sup> </p> <ul><li>Funktionsdeklarationen („Function Declarations“):</li></ul> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">function</span><span class="w"> </span><span class="nx">f</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="nx">y</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">y</span><span class="p">;</span> <span class="p">}</span> </pre></div> <ul><li>Funktionsausdrücke („Function Expressions“):</li></ul> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="nx">y</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">y</span><span class="p">;</span> <span class="p">};</span> </pre></div> <ul><li>Sofort ausgeführte Funktionsausdrücke („Immediately-Invoked Function Expressions“):</li></ul> <p>Anonyme Funktionen können auch direkt ausgeführt werden, ohne sie vorher einer Variable zuzuweisen. Das kann zur Kapselung des Gültigkeitsbereichs von Variablen verwendet werden. </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="nx">y</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">y</span><span class="p">;</span> <span class="p">})(</span><span class="mf">2</span><span class="p">,</span><span class="w"> </span><span class="mf">3</span><span class="p">);</span> </pre></div> <ul><li>Benannte Funktionsausdrücke („Named Function Expressions“):</li></ul> <p>Der Variablen <code>f</code> wird eine Funktion mit Bezeichner <code>g</code> zugewiesen. Außerhalb der Funktion ist sie mit <code>f</code> ansprechbar, innerhalb mit <code>f</code> und <code>g</code>. </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="nx">g</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="nx">y</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">y</span><span class="p">;</span> <span class="p">};</span> </pre></div> <ul><li>Funktionskonstruktor („Function Constructors“):</li></ul> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Function</span><span class="p">(</span><span class="s1">&#39;x&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;y&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;return x + y;&#39;</span><span class="p">);</span> </pre></div> <ul><li>Pfeilfunktionen („Arrow Functions“):</li></ul> <p>Die runden Klammern sind optional, falls die Funktion genau ein Argument hat. Werden die geschweiften Klammern weggelassen, muss man genau einen Ausdruck ohne <code>return</code> als Rückgabewert angeben. Mit geschweiften Klammern kann man beliebigen Code angeben, muss aber für Rückgabewerte <code>return</code> verwenden. </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="nx">y</span><span class="p">)</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">y</span><span class="p">;</span> <span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="nx">y</span><span class="p">)</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">y</span><span class="p">;</span><span class="w"> </span><span class="p">};</span> <span class="nx">x</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span> <span class="nx">x</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="p">};</span> <span class="c1">// Eine so erzeugte Funktion kann man natürlich auch einer Variablen zuweisen</span> <span class="kd">let</span><span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="nx">y</span><span class="p">)</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">y</span><span class="p">;</span> </pre></div> <div class="mw-heading mw-heading4"><h4 id="Beispiel">Beispiel</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=23" title="Abschnitt bearbeiten: Beispiel" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=23" title="Quellcode des Abschnitts bearbeiten: Beispiel"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Eine <a href="/wiki/Funktionale_Programmierung" title="Funktionale Programmierung">funktionale</a> und <a href="/wiki/Rekursion" title="Rekursion">rekursive</a> Implementierung des <a href="/wiki/Euklidischer_Algorithmus#Rekursive_Variante" title="Euklidischer Algorithmus">Euklidischen Algorithmus</a> mit zwei Argumenten sieht folgendermaßen aus: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">function</span><span class="w"> </span><span class="nx">euklid</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="w"> </span><span class="nx">b</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">b</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">0</span><span class="p">)</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">a</span><span class="p">;</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">euklid</span><span class="p">(</span><span class="nx">b</span><span class="p">,</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="nx">b</span><span class="p">);</span> <span class="p">}</span> </pre></div> <p>Implementierung des Euklidischen Algorithmus mit beliebig vielen Argumenten durch Reduzierung von <code>numbers</code> auf einen einzigen Wert, indem jeweils zwei Elemente von links nach rechts mit <code>euklid</code> ausgewertet werden: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">function</span><span class="w"> </span><span class="nx">ggT</span><span class="p">(...</span><span class="nx">numbers</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">reduce</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="nx">element</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">numbers</span><span class="p">)</span> <span class="w"> </span><span class="nx">reduce</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">euklid</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span><span class="w"> </span><span class="nx">reduce</span><span class="p">);</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">reduce</span><span class="p">;</span> <span class="p">}</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">ggT</span><span class="p">());</span><span class="w"> </span><span class="c1">// 0</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">ggT</span><span class="p">(</span><span class="mf">4</span><span class="p">));</span><span class="w"> </span><span class="c1">// 4</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">ggT</span><span class="p">(</span><span class="mf">24</span><span class="p">,</span><span class="w"> </span><span class="mf">36</span><span class="p">,</span><span class="w"> </span><span class="mf">84</span><span class="p">));</span><span class="w"> </span><span class="c1">// 12</span> </pre></div> <p>Implementierung des Euklidischen Algorithmus mit partieller Anwendung: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">function</span><span class="w"> </span><span class="nx">ggT</span><span class="p">(</span><span class="nx">reduce</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">reduce</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="kc">undefined</span><span class="p">)</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">element</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">element</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="kc">undefined</span><span class="p">)</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">reduce</span><span class="p">;</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ggT</span><span class="p">(</span><span class="nx">euklid</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span><span class="w"> </span><span class="nx">reduce</span><span class="p">));</span> <span class="w"> </span><span class="p">};</span> <span class="p">}</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">ggT</span><span class="p">());</span><span class="w"> </span><span class="c1">// 0</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">ggT</span><span class="p">(</span><span class="mf">4</span><span class="p">)());</span><span class="w"> </span><span class="c1">// 4</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">ggT</span><span class="p">(</span><span class="mf">24</span><span class="p">)(</span><span class="mf">36</span><span class="p">)(</span><span class="mf">84</span><span class="p">)());</span><span class="w"> </span><span class="c1">// 12</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Objekte">Objekte</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=24" title="Abschnitt bearbeiten: Objekte" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=24" title="Quellcode des Abschnitts bearbeiten: Objekte"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Objekte in JavaScript bestehen aus Eigenschaften, die als Name/Wert-Paar realisiert werden. Dabei wird nicht zwischen Attributen und Methoden des Objektes unterschieden (eine Eigenschaft, deren Wert den Typ <i>Function</i> besitzt, fungiert als Methode). Jedes Objekt – auch durch Literale erzeugte Objekte – erbt vom Prototyp des globalen Objekt-Konstruktors. </p> <div class="mw-heading mw-heading4"><h4 id="Vordefinierte_Objekte">Vordefinierte Objekte</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=25" title="Abschnitt bearbeiten: Vordefinierte Objekte" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=25" title="Quellcode des Abschnitts bearbeiten: Vordefinierte Objekte"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>JavaScript kennt mehrere eingebaute Objekte und <a href="/wiki/Objekttyp" class="mw-redirect" title="Objekttyp">Objekttypen</a>, die im Standard ECMAScript definiert sind. Dabei wird ein Objekttyp durch eine namensgleiche <a href="/wiki/Konstruktor" class="mw-redirect" title="Konstruktor">Konstruktor</a>funktionen repräsentiert, die zur Erzeugung von Objekten des entsprechenden Typs verwendet werden kann und zugleich einen Verweis auf den Prototyp des Objekttyps beinhaltet. </p> <ul><li>Das namenlose globale Objekt, das alle Variablen und Objekte enthält.</li> <li>Der Objekttyp <code>Object</code>, von dem alle Objekte abgeleitet sind.</li> <li>Der Objekttyp <code>Function</code> von <a href="/wiki/Funktion_(Programmierung)" title="Funktion (Programmierung)">Funktionen</a>.</li> <li>Der Objekttyp <code>Array</code> von <a href="/wiki/Feld_(Datentyp)" class="mw-redirect" title="Feld (Datentyp)">Arrays</a>.</li> <li>Der Objekttyp <code>String</code> von <a href="/wiki/Zeichenkette" title="Zeichenkette">Zeichenketten</a>.</li> <li>Der Objekttyp <code>Boolean</code> von <a href="/wiki/Boolesche_Variable" class="mw-redirect" title="Boolesche Variable">boolesche Variablen</a>.</li> <li>Der Objekttyp <code>Number</code> von <a href="/wiki/Zahl" title="Zahl">Zahlen</a> (64-Bit-<a href="/wiki/Gleitkommazahl" title="Gleitkommazahl">Gleitkommazahlen</a> gemäß <a href="/wiki/IEEE_754" title="IEEE 754">IEEE 754</a>).</li> <li>Der Objekttyp <code>Date</code> für <a href="/wiki/Datumsformat" title="Datumsformat">Datumsformate</a> (<a href="/wiki/Kalender" title="Kalender">Daten</a> bzw. Zeitpunkte).</li> <li>Der Objekttyp <code>RegExp</code> für <a href="/wiki/Regul%C3%A4rer_Ausdruck" title="Regulärer Ausdruck">reguläre Ausdrücke</a>.</li> <li>Der Objekttyp <code>Error</code> zur Charakterisierung (und ggf. nachfolgenden Auslösung mittels <code>throw</code>) von <a href="/wiki/Laufzeitfehler" title="Laufzeitfehler">Laufzeitfehlern</a>.</li> <li>Das Objekt <code>Math</code> stellt Konstanten und Methoden für <a href="/wiki/Mathematik" title="Mathematik">mathematische</a> Operationen bereit.</li> <li>Das Objekt <code>JSON</code> stellt zwei Methoden für die <a href="/wiki/Serialisierung" title="Serialisierung">Serialisierung</a> von Objekten ins <a href="/wiki/JSON" class="mw-redirect" title="JSON">JSON</a>-Format und umgekehrt bereit.</li> <li>Das Objekt <code>Reflect</code> stellt Methoden für die Ermittlung und Änderung der <a href="/wiki/Metadaten" title="Metadaten">Metadaten</a> eines Objekts bereit.</li></ul> <p>Weitere Objekte, die beim clientseitigen JavaScript verwendet werden, entstanden historisch vor allem durch die <a href="/wiki/Netscape_Communications" title="Netscape Communications">Netscape</a>-Spezifikationen (<code>window</code>, <code>document</code> usw.). Das <code>window</code>-Objekt selbst ist dabei de facto das globale Objekt, indem einfach einer Variablen <code>window</code> das globale Objekt zugewiesen wurde. Zahlreiche Unterobjekte von <code>document</code> wurden mittlerweile durch <a href="/wiki/Document_Object_Model" title="Document Object Model">DOM</a> HTML standardisiert (<code>title</code>, <code>images</code>, <code>links</code>, <code>forms</code> usw.). Aktuelle Browser unterstützen zudem DOM Core und andere <a href="/wiki/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a>-DOM-Standards sowie Erweiterungen von Microsoft <a href="/wiki/JScript" title="JScript">JScript</a>. </p> <div class="mw-heading mw-heading4"><h4 id="Zugriff_auf_Objekteigenschaften_und_-methoden">Zugriff auf Objekteigenschaften und -methoden</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=26" title="Abschnitt bearbeiten: Zugriff auf Objekteigenschaften und -methoden" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=26" title="Quellcode des Abschnitts bearbeiten: Zugriff auf Objekteigenschaften und -methoden"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Eigenschaft" title="Eigenschaft">Eigenschaften</a> von Objekten (auch <a href="/wiki/Methode_(Programmierung)" title="Methode (Programmierung)">Methoden</a> sind Eigenschaften) können wie folgt angesprochen werden: </p> <dl><dt>Punkt-Notation (mit statischen <a href="/wiki/Bezeichner" title="Bezeichner">Bezeichnern</a>)</dt></dl> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">objekt</span><span class="p">.</span><span class="nx">eigenschaft</span><span class="p">;</span> <span class="nx">objekt</span><span class="p">.</span><span class="nx">methode</span><span class="p">(</span><span class="nx">parameter1</span><span class="p">,</span><span class="w"> </span><span class="nx">parameter2</span><span class="p">);</span> </pre></div> <dl><dt>Klammer-Notation (mit dynamischen <a href="/wiki/Bezeichner" title="Bezeichner">Bezeichnern</a>)</dt></dl> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">objekt</span><span class="p">[</span><span class="s2">&quot;eigenschaft&quot;</span><span class="p">];</span> <span class="nx">objekt</span><span class="p">[</span><span class="s2">&quot;methode&quot;</span><span class="p">](</span><span class="nx">parameter1</span><span class="p">,</span><span class="w"> </span><span class="nx">parameter2</span><span class="p">);</span> <span class="c1">// Eigenschaftsname, der in Punktnotation illegal wäre</span> <span class="nx">objekt</span><span class="p">[</span><span class="s2">&quot;methode 1&quot;</span><span class="p">]();</span> <span class="c1">// So können auch alle Eigenschaften des Objekts durchlaufen werden</span> <span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">eigenschaftsName</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="nx">objekt</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">eigenschaftsName</span><span class="p">,</span><span class="w"> </span><span class="s2">&quot; = &quot;</span><span class="p">,</span><span class="w"> </span><span class="nx">objekt</span><span class="p">[</span><span class="nx">eigenschaftsName</span><span class="p">]);</span> <span class="p">}</span> </pre></div> <p>Zu allen Objekten können zur <a href="/wiki/Laufzeit_(Informatik)" title="Laufzeit (Informatik)">Laufzeit</a> neue Eigenschaften hinzugefügt oder mit <code>delete</code> bestehende entfernt werden: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// Statisch bzw. dynamisch benannte Eigenschaften hinzufügen:</span> <span class="nx">objekt</span><span class="p">.</span><span class="nx">eigenschaftA</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;ein Wert&quot;</span><span class="p">;</span> <span class="nx">objekt</span><span class="p">[</span><span class="s2">&quot;eigenschaftB&quot;</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;ein anderer Wert&quot;</span><span class="p">;</span> <span class="c1">// Statisch bzw. dynamisch benannte Eigenschaften entfernen:</span> <span class="ow">delete</span><span class="w"> </span><span class="nx">objekt</span><span class="p">.</span><span class="nx">eigenschaftA</span><span class="p">;</span> <span class="ow">delete</span><span class="w"> </span><span class="nx">objekt</span><span class="p">[</span><span class="s2">&quot;eigenschaftB&quot;</span><span class="p">];</span> </pre></div> <div class="mw-heading mw-heading4"><h4 id="Objektliterale">Objektliterale</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=27" title="Abschnitt bearbeiten: Objektliterale" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=27" title="Quellcode des Abschnitts bearbeiten: Objektliterale"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Objekte können in JavaScript direkt anhand ihrer Eigenschaften definiert werden: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="nx">meinObjekt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">zahl</span><span class="o">:</span><span class="w"> </span><span class="mf">42</span><span class="p">,</span> <span class="w"> </span><span class="nx">gibZahl</span><span class="o">:</span><span class="w"> </span><span class="kd">function</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">zahl</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="p">};</span> <span class="nx">alert</span><span class="p">(</span><span class="nx">meinObjekt</span><span class="p">.</span><span class="nx">gibZahl</span><span class="p">());</span><span class="w"> </span><span class="c1">// 42</span> </pre></div> <p>Eine spezielle Notation gibt es für reguläre Ausdrücke: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// mit Konstruktorfunktion</span> <span class="p">(</span><span class="ow">new</span><span class="w"> </span><span class="nb">RegExp</span><span class="p">(</span><span class="s2">&quot;a&quot;</span><span class="p">)).</span><span class="nx">test</span><span class="p">(</span><span class="s2">&quot;ab&quot;</span><span class="p">);</span><span class="w"> </span><span class="c1">// true</span> <span class="c1">// als Literal</span> <span class="sr">/a/</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="s2">&quot;ab&quot;</span><span class="p">);</span><span class="w"> </span><span class="c1">// true</span> </pre></div> <div class="mw-heading mw-heading4"><h4 id="Konstruktor-Funktionen">Konstruktor-Funktionen</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=28" title="Abschnitt bearbeiten: Konstruktor-Funktionen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=28" title="Quellcode des Abschnitts bearbeiten: Konstruktor-Funktionen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Eine Funktion kann dazu genutzt werden, um ein mit <code>new</code> erstelltes Objekt zu initialisieren. In diesem Fall spricht man von einem <a href="/wiki/Konstruktor" class="mw-redirect" title="Konstruktor">Konstruktor</a> oder einer Konstruktor-Funktion. Innerhalb dieser Funktion kann das neue Objekt über die Variable <code>this</code> angesprochen werden. </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">function</span><span class="w"> </span><span class="nx">MeinObjekt</span><span class="p">(</span><span class="nx">x</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// Konstruktor</span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">zahl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">x</span><span class="p">;</span> <span class="p">}</span> <span class="kd">let</span><span class="w"> </span><span class="nx">objekt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">MeinObjekt</span><span class="p">(</span><span class="mf">3</span><span class="p">);</span><span class="w"> </span><span class="c1">// Instanz erzeugen</span> <span class="nx">alert</span><span class="p">(</span><span class="nx">objekt</span><span class="p">.</span><span class="nx">zahl</span><span class="p">);</span><span class="w"> </span><span class="c1">// per Meldefenster ausgeben (3)</span> </pre></div> <div class="mw-heading mw-heading4"><h4 id="„Private“_Eigenschaften"><span id=".E2.80.9EPrivate.E2.80.9C_Eigenschaften"></span>„Private“ Eigenschaften</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=29" title="Abschnitt bearbeiten: „Private“ Eigenschaften" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=29" title="Quellcode des Abschnitts bearbeiten: „Private“ Eigenschaften"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Private Eigenschaften und Methoden sind nicht explizit Teil der Sprache. </p><p>Mit Hilfe von Closures (siehe <a href="#Funktionen">Funktionen</a>) lassen sich dennoch private Eigenschaften von Objekten realisieren: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="nx">erschaffeKatze</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">lebensZahl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">7</span><span class="p">;</span> <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">maunz</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">(</span><span class="nx">lebensZahl</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mf">0</span><span class="p">)</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="s2">&quot;miau&quot;</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;örks&quot;</span><span class="p">;</span> <span class="w"> </span><span class="p">};</span> <span class="w"> </span><span class="c1">// gibt neues Objekt zurück</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">toeten</span><span class="o">:</span><span class="w"> </span><span class="kd">function</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">lebensZahl</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span> <span class="w"> </span><span class="nx">alert</span><span class="p">(</span><span class="nx">maunz</span><span class="p">());</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">};</span> <span class="p">};</span> <span class="kd">let</span><span class="w"> </span><span class="nx">otto</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">erschaffeKatze</span><span class="p">();</span> <span class="nx">otto</span><span class="p">.</span><span class="nx">toeten</span><span class="p">();</span><span class="w"> </span><span class="c1">// miau</span> </pre></div> <p>Lediglich die <code>toeten</code>-Methode von <code>otto</code> kennt die Variable <code>lebensZahl</code>. Der Effekt gleicht dem einer privaten Eigenschaft, wenn alle Methoden der Katze in der erzeugenden Funktion <code>erschaffeKatze</code> definiert werden. <code>lebensZahl</code> ist dann für alle Methoden (privilegierte Methoden, im Beispiel <code>toeten</code>) und inneren Funktionen der erzeugenden Funktion (private Methoden, im Beispiel <code>maunz</code>) sichtbar, nicht jedoch von außen oder von nachträglich an das Objekt gehängten Methoden. </p> <div class="mw-heading mw-heading4"><h4 id="Vererbung_über_Prototypen"><span id="Vererbung_.C3.BCber_Prototypen"></span>Vererbung über Prototypen</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=30" title="Abschnitt bearbeiten: Vererbung über Prototypen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=30" title="Quellcode des Abschnitts bearbeiten: Vererbung über Prototypen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Vererbung_(Programmierung)" title="Vererbung (Programmierung)">Vererbung</a> kann in JavaScript durch Prototypen realisiert werden. Dies erfordert, dass der prototype-Eigenschaft einer Konstruktor-Funktion ein als Prototyp dienendes Objekt zugewiesen wird. Wenn mit der Konstruktor-Funktion nun ein Objekt erzeugt wird, wird beim Zugriff auf eine nicht-existierende Eigenschaft des neuen Objekts die entsprechende Eigenschaft des Prototyps (wenn vorhanden) zurückgegeben. Beispiel: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="nx">fisch</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">augen</span><span class="o">:</span><span class="w"> </span><span class="mf">2</span> <span class="p">};</span> <span class="kd">let</span><span class="w"> </span><span class="nx">Mutantenfisch</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">augen</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">3</span><span class="p">;</span> <span class="p">};</span> <span class="nx">Mutantenfisch</span><span class="p">.</span><span class="nx">prototype</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">fisch</span><span class="p">;</span> <span class="kd">let</span><span class="w"> </span><span class="nx">blinky</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">Mutantenfisch</span><span class="p">();</span> <span class="c1">// eigene Eigenschaft von blinky</span> <span class="nx">alert</span><span class="p">(</span><span class="nx">blinky</span><span class="p">.</span><span class="nx">augen</span><span class="p">);</span><span class="w"> </span><span class="c1">// 3</span> <span class="c1">// blinkys eigene Eigenschaft wird gelöscht</span> <span class="ow">delete</span><span class="w"> </span><span class="nx">blinky</span><span class="p">.</span><span class="nx">augen</span><span class="p">;</span> <span class="c1">// blinky hat die Eigenschaft selbst nicht mehr,</span> <span class="c1">// es schimmert die Eigenschaft des Prototyps durch</span> <span class="nx">alert</span><span class="p">(</span><span class="nx">blinky</span><span class="p">.</span><span class="nx">augen</span><span class="p">);</span><span class="w"> </span><span class="c1">// 2</span> </pre></div> <p>Um festzustellen, ob ein Objekt eine Eigenschaft selbst besitzt oder vom Prototyp geerbt hat, hat jedes Objekt (automatisch durch Vererbung von Object) die hasOwnProperty-Methode: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">blinky</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="s1">&#39;augen&#39;</span><span class="p">);</span><span class="w"> </span><span class="c1">// false</span> </pre></div> <div class="mw-heading mw-heading4"><h4 id="Fixierung_von_Objektstruktur_und_-inhalten">Fixierung von Objektstruktur und -inhalten</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=31" title="Abschnitt bearbeiten: Fixierung von Objektstruktur und -inhalten" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=31" title="Quellcode des Abschnitts bearbeiten: Fixierung von Objektstruktur und -inhalten"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Die in JavaScript im Regelfall völlig dynamische Struktur eines Objekts <code>obj</code> kann in verschiedener Hinsicht fixiert werden: Nach dem Methodenaufruf <code>Object.preventExtensions(obj)</code> können keine weiteren Attribute und Methoden mehr ergänzt werden. <code>Object.seal(obj)</code> verhindert sowohl die Erweiterung wie die Streichung von Attributen und Methoden. Der Aufruf <code>Object.freeze(obj)</code> fixiert sowohl die Objektstruktur wie auch die Attributwerte inklusive der Methoden gegen nachfolgende Veränderungen. Die betreffenden Status eines Objekts <code>obj</code> können mit <code>Object.isExtensible(obj)</code>, <code>Object.isSealed(obj)</code> und <code>Object.isFrozen(obj)</code> ermittelt werden. </p><p>Es ist auch möglich, nur ein einzelnes Attribut eines Objekts <code>obj</code> zu fixieren. Beispielsweise wird mit dem Aufruf </p><p><code>Object.defineProperty(obj, "vorname", {writable:false});</code> </p><p>das Attribut <code>obj.vorname</code> schreibgeschützt.<sup id="cite_ref-ECMAScript_51-0" class="reference"><a href="#cite_note-ECMAScript-51"><span class="cite-bracket">&#91;</span>51<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Delegationsprinzipien">Delegationsprinzipien</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=32" title="Abschnitt bearbeiten: Delegationsprinzipien" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=32" title="Quellcode des Abschnitts bearbeiten: Delegationsprinzipien"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>JavaScript ist eine <a href="/wiki/Delegation_(Softwareentwicklung)" title="Delegation (Softwareentwicklung)">Delegationssprache</a> mit sowohl selbstausführendem als auch direktem Delegationsmechanismus. </p> <dl><dt>Funktionsobjekte als Rollen (Traits und Mixins)</dt> <dd>JavaScript unterstützt schon auf der Ebene des Sprachkerns verschiedene auf Funktionsobjekten aufbauende Implementierungen des Rollen-Musters<sup id="cite_ref-52" class="reference"><a href="#cite_note-52"><span class="cite-bracket">&#91;</span>52<span class="cite-bracket">&#93;</span></a></sup> wie z.&#160;B. <a href="/wiki/Trait_(Programmierung)" title="Trait (Programmierung)">Traits</a><sup id="cite_ref-53" class="reference"><a href="#cite_note-53"><span class="cite-bracket">&#91;</span>53<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-54" class="reference"><a href="#cite_note-54"><span class="cite-bracket">&#91;</span>54<span class="cite-bracket">&#93;</span></a></sup> und <a href="/wiki/Mixin" title="Mixin">Mixins</a>.<sup id="cite_ref-55" class="reference"><a href="#cite_note-55"><span class="cite-bracket">&#91;</span>55<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-56" class="reference"><a href="#cite_note-56"><span class="cite-bracket">&#91;</span>56<span class="cite-bracket">&#93;</span></a></sup> Zusätzliches Verhalten wird bereitgestellt, indem mindestens eine Methode über das Schlüsselwort <code>this</code> im Rumpf eines <code>function</code>-Objekts gebunden wird. Benötigt ein Objekt zusätzliches Verhalten, welches ihm nicht über die Prototypenkette zur Verfügung gestellt werden kann, lässt sich eine Rolle direkt über <code>call</code> bzw. <code>apply</code> an dieses Objekt delegieren.</dd> <dt>Objektkomposition und Vererbung durch Delegation</dt> <dd>Während <a href="/wiki/Komposition_(Informatik)" class="mw-redirect" title="Komposition (Informatik)">Komposition</a> in JavaScript über diese direkte Delegation abgedeckt werden kann, kommt automatische Delegation immer dann zur Anwendung, wenn der Interpreter die Prototypenkette eines Objekts nach oben hin abwandern muss, um z.&#160;B. eine mit diesem Objekt assoziierte Methode zu finden, die diesem nicht unmittelbar gehört. Sobald die Methode gefunden ist, wird sie im Kontext dieses Objekts aufgerufen. Demzufolge wird <a href="/wiki/Vererbung_(Programmierung)" title="Vererbung (Programmierung)">Vererbung</a> in JavaScript über einen selbstausführenden Delegationsmechanismus abgebildet, der an die <code>prototype</code>-Eigenschaft von Konstruktorfunktionen gebunden ist.</dd></dl> <div class="mw-heading mw-heading3"><h3 id="Fehlerbehandlung">Fehlerbehandlung</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=33" title="Abschnitt bearbeiten: Fehlerbehandlung" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=33" title="Quellcode des Abschnitts bearbeiten: Fehlerbehandlung"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Ab Version 3 verfügt ECMAScript über eine von Java übernommene <a href="/wiki/Ausnahmebehandlung" title="Ausnahmebehandlung">Fehlerbehandlung</a>. Die Anweisung <code>try … catch … finally</code> fängt <a href="/wiki/Ausnahmebehandlung" title="Ausnahmebehandlung">Ausnahmen</a> (<i>exceptions</i>) ab, die aufgrund eines <a href="/wiki/Fehler" title="Fehler">Fehlers</a> oder einer <code>throw</code>-Anweisung auftreten. Die Syntax lautet: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="k">try</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="c1">// Anweisungen, in denen Ausnahmen auftreten oder ausgelöst werden können</span> <span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="nx">exception</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="c1">// Anweisungsfolge, die im Ausnahmefall ausgeführt wird.</span> <span class="w"> </span><span class="c1">// In diesem Teil kann die Fehlerbehandlung erfolgen.</span> <span class="p">}</span><span class="w"> </span><span class="k">finally</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="c1">// Anweisungsfolge, die anschließend in jedem Fall ausgeführt wird.</span> <span class="p">}</span> <span class="k">throw</span><span class="w"> </span><span class="s2">&quot;sample exception&quot;</span><span class="p">;</span><span class="w"> </span><span class="c1">// wenn verfügbar, besser: Error-Objekt (siehe unten)</span> </pre></div> <p>Zu Beginn werden die Anweisungen im <code>try</code>-Block ausgeführt. Falls eine Ausnahme auftritt, wird der <a href="/wiki/Kontrollfluss" title="Kontrollfluss">Kontrollfluss</a> sofort zum <code>catch</code>-Block mit dem Ausnahmeobjekt als Parameter umgeleitet. </p><p>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. </p><p>Einige Laufzeitumgebungen wie <a href="/wiki/V8_(JavaScript-Implementierung)" title="V8 (JavaScript-Implementierung)">V8</a> (und somit <a href="/wiki/Node.js" title="Node.js">Node.js</a>) und auch viele Webbrowser stellen gesonderte <i>Error-Objekte</i> zur Verfügung, die neben der Fehlermeldung auch einen <a href="/wiki/Stacktrace" title="Stacktrace">Stacktrace</a> und weitere Zusatzinformationen transportieren können.<sup id="cite_ref-57" class="reference"><a href="#cite_note-57"><span class="cite-bracket">&#91;</span>57<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-58" class="reference"><a href="#cite_note-58"><span class="cite-bracket">&#91;</span>58<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-59" class="reference"><a href="#cite_note-59"><span class="cite-bracket">&#91;</span>59<span class="cite-bracket">&#93;</span></a></sup> Um diese Vorteile zu nutzen, ändert man im einfachsten Anwendungsfall den <code>throw</code>-Befehl von <code class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><span class="k">throw</span><span class="w"> </span><span class="s2">&quot;Meldungstext&quot;</span><span class="p">;</span></code> zu <code class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><span class="k">throw</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="ne">Error</span><span class="p">(</span><span class="s2">&quot;Meldungstext&quot;</span><span class="p">);</span></code>.<sup id="cite_ref-60" class="reference"><a href="#cite_note-60"><span class="cite-bracket">&#91;</span>60<span class="cite-bracket">&#93;</span></a></sup> </p><p>Klammern um den Parameter des <code>throw</code>-Befehls sind im Allgemeinen nicht notwendig.<sup id="cite_ref-ECMAScript_51-1" class="reference"><a href="#cite_note-ECMAScript-51"><span class="cite-bracket">&#91;</span>51<span class="cite-bracket">&#93;</span></a></sup> Sollten sie in Ausnahmefällen benötigt werden, um beispielsweise einen auf mehrere Zeilen verteilten Parameter zusammenzufassen, kann die mögliche Verwechslung mit einem Funktionsaufruf dennoch vermieden werden, indem man ein Leerzeichen zwischen <code>throw</code> und die öffnende Klammer einfügt. </p> <div class="mw-heading mw-heading2"><h2 id="JavaScript-Bibliotheken">JavaScript-Bibliotheken</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=34" title="Abschnitt bearbeiten: JavaScript-Bibliotheken" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=34" title="Quellcode des Abschnitts bearbeiten: JavaScript-Bibliotheken"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Um die Erstellung von <a href="/wiki/Webanwendung" title="Webanwendung">Webanwendungen</a> mit Hilfe von JavaScript zu erleichtern, gibt es diverse <a href="/wiki/Programmbibliothek" title="Programmbibliothek">Bibliotheken</a> und <a href="/wiki/Framework" title="Framework">Frameworks</a>. Eine Bibliothek ist eine Sammlung von <a href="/wiki/Funktion_(Programmierung)" title="Funktion (Programmierung)">Funktionen</a>, die der Programmierer nutzen kann. Ein Framework fordert darüber hinaus durch ein besonderes Maß an <a href="/wiki/Abstraktion" title="Abstraktion">Abstraktion</a> eine bestimmte Struktur der Programmierung. </p><p>Ausgelöst von neuen Konzepten wie <a href="/wiki/Ajax_(Programmierung)" title="Ajax (Programmierung)">Ajax</a> entstand seit 2004 ein neues Interesse für JavaScript. JavaScript wird zunehmend für <a href="/wiki/Rich-Client" class="mw-redirect" title="Rich-Client">Rich-Client</a>-Anwendungen benutzt, die das Aussehen und die Bedienung von herkömmlichen <a href="/wiki/Desktop_(grafische_Benutzeroberfl%C3%A4che)" title="Desktop (grafische Benutzeroberfläche)">Desktop</a>-Programmen auf Web-gestützte Anwendungen übertragen. JavaScript spielt dabei eine Schlüsselrolle, wenn es darum geht, Statusinformationen ohne Laden einer vollständigen Seite zwischen Browser und HTTP-Server zu übertragen. Im Zuge dieser neuen Anforderungen entstanden verschiedene Bibliotheken, die die Entwicklung solcher Anwendungen vereinfachen wollen. Neben Ajax-Funktionalitäten bieten die meisten dieser Bibliotheken eine eigene Basis für objektorientierte Programmierung, eine Abstraktionsschicht für das komfortable Arbeiten mit dem <a href="/wiki/Document_Object_Model" title="Document Object Model">DOM</a> sowie grafische Effekte wie <a href="/wiki/Animation" title="Animation">Animationen</a>. Aber auch schon vor dem breiten Einsatz von Ajax existierten Funktionssammlungen zur Unterstützung der browserübergreifenden Programmierung.<sup id="cite_ref-61" class="reference"><a href="#cite_note-61"><span class="cite-bracket">&#91;</span>61<span class="cite-bracket">&#93;</span></a></sup> </p><p>Zu den bekannten JavaScript-Bibliotheken und Frameworks zählen <a href="/wiki/AngularJS" title="AngularJS">AngularJS</a>, <a href="/wiki/Dojo_Toolkit" title="Dojo Toolkit">Dojo Toolkit</a>, <a href="/wiki/Ext_JS" title="Ext JS">Ext JS</a>, <a href="/wiki/JQuery" title="JQuery">jQuery</a>, <a href="/wiki/MooTools" title="MooTools">MooTools</a>, <a href="/wiki/Prototype_(Klassenbibliothek)" title="Prototype (Klassenbibliothek)">Prototype</a>, <a href="/wiki/Qooxdoo" title="Qooxdoo">Qooxdoo</a>, <a href="/wiki/React" title="React">React</a>, <a href="/wiki/Vue.js" title="Vue.js">Vue.js</a> und die <a href="/wiki/Yahoo_User_Interface_Library" title="Yahoo User Interface Library">Yahoo User Interface Library</a>. Speziell mit grafischen Effekten beschäftigen sich Moo.fx und <a href="/wiki/Script.aculo.us" title="Script.aculo.us">Script.aculo.us</a>. Für die serverseitige Programmierung mittels <a href="/wiki/Node.js" title="Node.js">Node.js</a> stehen eigene Bibliotheken und Frameworks bereit. </p><p>Einige Bibliotheken und insbesondere Frameworks erweitern die Sprache um zusätzliche Funktionen, die häufig in spätere Versionen der Spezifikation einfließen oder rüsten bei Bedarf ältere Implementierung per <a href="/wiki/Polyfill" title="Polyfill">Polyfill</a> nach. </p> <div class="sieheauch" role="navigation" style="font-style:italic;"><span class="sieheauch-text">Siehe auch</span>: <a href="/wiki/Kategorie:JavaScript-Bibliothek" title="Kategorie:JavaScript-Bibliothek">Kategorie:JavaScript-Bibliothek</a></div> <div class="mw-heading mw-heading2"><h2 id="JavaScript_&amp;_Suchmaschinenoptimierung_(SEO)"><span id="JavaScript_.26_Suchmaschinenoptimierung_.28SEO.29"></span>JavaScript &amp; Suchmaschinenoptimierung (SEO)</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=35" title="Abschnitt bearbeiten: JavaScript &amp; Suchmaschinenoptimierung (SEO)" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=35" title="Quellcode des Abschnitts bearbeiten: JavaScript &amp; Suchmaschinenoptimierung (SEO)"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Suchmaschinen gehen unterschiedlich mit der Verarbeitung von Javascript-Inhalten um, wodurch es in den letzten Jahren immer wieder zu Fällen gekommen ist, dass Websites teilweise oder gänzlich nicht in Suchmaschinen auffindbar waren. Der Suchmaschinenbetreiber <a href="/wiki/Google_LLC" title="Google LLC">Google</a> kann laut eigenen Aussagen JavaScript-Inhalte crawlen, rendern und indexieren.<sup id="cite_ref-62" class="reference"><a href="#cite_note-62"><span class="cite-bracket">&#91;</span>62<span class="cite-bracket">&#93;</span></a></sup> Neben allgemeinen Empfehlungen wie z.&#160;B. die Verwendung von aussagekräftigen Titeln, eindeutigen Statuscodes und den sorgsamen Umgang mit Noindex-Direktiven gibt es im Hinblick auf JavaScript noch spezifischere Empfehlungen, welche helfen können, dass JavaScript-Webanwendungen optimal via <a href="/wiki/Suchmaschinenoptimierung" title="Suchmaschinenoptimierung">Suchmaschinenoptimierung</a> aufgefunden werden können. Dazu zählen serverseitiges Pre-Rendering oder der Verzicht von Fragmenten bei Links. Für das Debugging von JavaScript &amp; SEO gibt es eine Reihe von offiziellen Empfehlungen seitens Google, um nachprüfen zu können, wie der <a href="/wiki/Googlebot" title="Googlebot">Googlebot</a> Webinhalte erfasst.<sup id="cite_ref-63" class="reference"><a href="#cite_note-63"><span class="cite-bracket">&#91;</span>63<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=36" title="Abschnitt bearbeiten: Siehe auch" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=36" title="Quellcode des Abschnitts bearbeiten: Siehe auch"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/ActionScript" title="ActionScript">ActionScript</a> – Bezeichnung für eine JavaScript-ähnliche Skriptsprache in Flash und <a href="/wiki/Macromedia" title="Macromedia">Macromedia</a> Director, wo es alternativ zu <a href="/wiki/Lingo_(Programmiersprache)" title="Lingo (Programmiersprache)">Lingo</a> verwendet werden kann</li> <li><a href="/wiki/Aktive_Inhalte" title="Aktive Inhalte">Aktive Inhalte</a></li> <li><a href="/wiki/Bookmarklet" title="Bookmarklet">Bookmarklet</a> – kleine JavaScript-Programme im Browser</li> <li><a href="/wiki/Dart_(Programmiersprache)" title="Dart (Programmiersprache)">Dart (Programmiersprache)</a></li> <li><a href="/wiki/TypeScript" title="TypeScript">TypeScript</a> – Weiterentwicklung von Microsoft</li></ul> <div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=37" title="Abschnitt bearbeiten: Literatur" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=37" title="Quellcode des Abschnitts bearbeiten: Literatur"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>David Flanagan: <i>JavaScript – Das Handbuch für die Praxis.</i> 7. Auflage. O’Reilly, Heidelberg 2021, <a href="/wiki/Spezial:ISBN-Suche/9783960091578" class="internal mw-magiclink-isbn">ISBN 978-3-96009-157-8</a>.</li> <li>Paul Fuchs: <i>JavaScript Programmieren für Einsteiger: Der leichte Weg zum JavaScript-Experten.</i> BMU Verlag, Landshut 2019, <a href="/wiki/Spezial:ISBN-Suche/9783966450164" class="internal mw-magiclink-isbn">ISBN 978-3-96645-016-4</a></li> <li><a href="/wiki/J%C3%B6rg_Bewersdorff" title="Jörg Bewersdorff">Jörg Bewersdorff</a>&#58; <cite style="font-style:italic">Objektorientierte Programmierung mit JavaScript: Direktstart für Einsteiger</cite>. 2. Auflage. Wiesbaden 2018, <a href="/wiki/Spezial:ISBN-Suche/9783658210762" class="internal mw-magiclink-isbn">ISBN 978-3-658-21076-2</a>, <a href="/wiki/Digital_Object_Identifier" title="Digital Object Identifier">doi</a>:<span class="uri-handle" style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://doi.org/10.1007/978-3-658-21077-9">10.1007/978-3-658-21077-9</a></span>.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:JavaScript&amp;rft.au=J%C3%B6rg+Bewersdorff&amp;rft.btitle=Objektorientierte+Programmierung+mit+JavaScript%3A+Direktstart+f%C3%BCr+Einsteiger&amp;rft.date=2018&amp;rft.doi=10.1007%2F978-3-658-21077-9&amp;rft.edition=2.&amp;rft.genre=book&amp;rft.isbn=9783658210762&amp;rft.place=Wiesbaden" style="display:none">&#160;</span></li> <li>Philip Ackermann: <i>JavaScript. Das umfassende Handbuch.</i> 1. Auflage. Galileo Press, Bonn 2016, <a href="/wiki/Spezial:ISBN-Suche/9783836238380" class="internal mw-magiclink-isbn">ISBN 978-3-8362-3838-0</a>.</li> <li>Nicholas Zakas&#58; <cite style="font-style:italic">JavaScript objektorientiert: Verständlicher, flexibler, effizienter programmieren</cite>. Heidelberg 2014, <a href="/wiki/Spezial:ISBN-Suche/9783864902024" class="internal mw-magiclink-isbn">ISBN 978-3-86490-202-4</a>.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:JavaScript&amp;rft.au=Nicholas+Zakas&amp;rft.btitle=JavaScript+objektorientiert%3A+Verst%C3%A4ndlicher%2C+flexibler%2C+effizienter+programmieren&amp;rft.date=2014&amp;rft.genre=book&amp;rft.isbn=9783864902024&amp;rft.place=Heidelberg" style="display:none">&#160;</span></li> <li>Peter Kröner: <i>ECMAScript 5 – Entwickeln mit dem aktuellen JavaScript-Standard.</i> 1. Auflage. Open Source Press, München 2013, <a href="/wiki/Spezial:ISBN-Suche/9783955390631" class="internal mw-magiclink-isbn">ISBN 978-3-95539-063-1</a>.</li> <li>Christian Wenz: <i>JavaScript und AJAX. Das umfassende Handbuch.</i> 9. Auflage. Galileo Press, Bonn 2009, <a href="/wiki/Spezial:ISBN-Suche/9783898428590" class="internal mw-magiclink-isbn">ISBN 978-3-89842-859-0</a> (<a rel="nofollow" class="external text" href="http://openbook.galileocomputing.de/javascript_ajax/">openbook.galileocomputing.de</a>).</li> <li>Stefan Koch: <i>JavaScript. Einführung, Programmierung, Referenz – inklusive Ajax.</i> 5. Auflage. dpunkt-Verlag, Heidelberg 2009, <a href="/wiki/Spezial:ISBN-Suche/9783898645942" class="internal mw-magiclink-isbn">ISBN 978-3-89864-594-2</a>.</li> <li><a href="/w/index.php?title=Douglas_Crockford&amp;action=edit&amp;redlink=1" class="new" title="Douglas Crockford (Seite nicht vorhanden)">Douglas Crockford</a>: <i>Das Beste an JavaScript.</i> O’Reilly, Köln 2008, <a href="/wiki/Spezial:ISBN-Suche/9783897218765" class="internal mw-magiclink-isbn">ISBN 978-3-89721-876-5</a>.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=38" title="Abschnitt bearbeiten: Weblinks" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=38" title="Quellcode des Abschnitts bearbeiten: Weblinks"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="sisterproject" style="margin:0.1em 0 0 0;"><div class="noresize noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Commons"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png" decoding="async" width="12" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></span></span></div><b><span class="plainlinks"><a class="external text" href="https://commons.wikimedia.org/wiki/Category:JavaScript?uselang=de"><span lang="en">Commons</span>: JavaScript</a></span></b>&#160;– Sammlung von Bildern, Videos und Audiodateien</div> <div class="sisterproject" style="margin:0.1em 0 0 0;"><div class="noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Wikibooks"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikibooks-logo.svg/16px-Wikibooks-logo.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikibooks-logo.svg/24px-Wikibooks-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikibooks-logo.svg/32px-Wikibooks-logo.svg.png 2x" data-file-width="300" data-file-height="300" /></span></span></div><b><a href="https://de.wikibooks.org/wiki/Websiteentwicklung:_JavaScript" class="extiw" title="b:Websiteentwicklung: JavaScript">Wikibooks: Websiteentwicklung: JavaScript</a></b>&#160;– Lern- und Lehrmaterialien</div> <div class="sisterproject" style="margin:0.1em 0 0 0;"><span class="noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Wiktionary"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Wiktfavicon_en.svg/16px-Wiktfavicon_en.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Wiktfavicon_en.svg/24px-Wiktfavicon_en.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Wiktfavicon_en.svg/32px-Wiktfavicon_en.svg.png 2x" data-file-width="16" data-file-height="16" /></span></span></span><b><a href="https://de.wiktionary.org/wiki/JavaScript" class="extiw" title="wikt:JavaScript">Wiktionary: JavaScript</a></b>&#160;– Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen</div> <ul><li><a rel="nofollow" class="external text" href="https://curlie.org/World/Deutsch/Computer/Programmieren/Internet/JavaScript/">Linkkatalog zum Thema JavaScript</a> bei <i>curlie.org</i> (ehemals <a href="/wiki/DMOZ" title="DMOZ">DMOZ</a>)</li> <li><span class="cite"><a rel="nofollow" class="external text" href="https://cre.fm/cre146-javascript"><i>JavaScript – Geschichte, Struktur, Eigenschaften und die Zukunft der wichtigsten Programmiersprache des Webs.</i></a>&#32;(MP3 97,5&#160;MB)&#32;In:&#32;<i>Chaosradio Express CRE146.</i>&#32;27.&#160;Februar 2010&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;Februar 2010</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=JavaScript+%E2%80%93+Geschichte%2C+Struktur%2C+Eigenschaften+und+die+Zukunft+der+wichtigsten+Programmiersprache+des+Webs&amp;rft.description=JavaScript+%E2%80%93+Geschichte%2C+Struktur%2C+Eigenschaften+und+die+Zukunft+der+wichtigsten+Programmiersprache+des+Webs&amp;rft.identifier=https%3A%2F%2Fcre.fm%2Fcre146-javascript&amp;rft.date=2010-02-27">&#160;</span></li> <li><span class="cite">Addy Osmani:&#32;<a rel="nofollow" class="external text" href="https://addyosmani.com/resources/essentialjsdesignpatterns/book/"><i>Learning JavaScript Design Patterns.</i></a><span class="Abrufdatum">&#32;Abgerufen am 24.&#160;Mai 2013</span>&#32;(englisch,&#32;<a href="/wiki/Entwurfsmuster" title="Entwurfsmuster">Entwurfsmuster</a> in JavaScript).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Learning+JavaScript+Design+Patterns&amp;rft.description=Learning+JavaScript+Design+Patterns&amp;rft.identifier=https%3A%2F%2Faddyosmani.com%2Fresources%2Fessentialjsdesignpatterns%2Fbook%2F&amp;rft.creator=Addy+Osmani&amp;rft.language=en">&#160;</span></li> <li><a rel="nofollow" class="external text" href="https://www.ecma-international.org/ecma-262/#sec-copyright-and-software-license">Lizenz</a></li></ul> <div class="mw-heading mw-heading3"><h3 id="Spezifikationen">Spezifikationen</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=39" title="Abschnitt bearbeiten: Spezifikationen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=39" title="Quellcode des Abschnitts bearbeiten: Spezifikationen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a rel="nofollow" class="external text" href="http://standards.iso.org/ittf/PubliclyAvailableStandards/c055755_ISO_IEC_16262_2011(E).zip">ISO-genormte ECMAScript-Spezifikation (ISO/IEC 16262:2002)</a> (englisch/französisch)</li> <li><a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">ECMAScript-Spezifikation</a> (englisch, PDF; 3,1&#160;MiB) (<a rel="nofollow" class="external text" href="http://ecma-international.org/ecma-262/">HTML-Version</a>)</li> <li><a rel="nofollow" class="external text" href="https://developer.mozilla.org/de/docs/Web/JavaScript/Reference">Referenz von Mozilla</a> (deutsch)</li> <li><a rel="nofollow" class="external text" href="https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/">Übersicht über die Neuerungen in JavaScript</a> (englisch)</li></ul> <div class="mw-heading mw-heading3"><h3 id="Dokumentationen">Dokumentationen</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=40" title="Abschnitt bearbeiten: Dokumentationen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=40" title="Quellcode des Abschnitts bearbeiten: Dokumentationen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a rel="nofollow" class="external text" href="https://wiki.selfhtml.org/wiki/JavaScript">JavaScript-Kapitel bei SELFHTML-Wiki</a></li> <li><a rel="nofollow" class="external text" href="https://intern.fh-wedel.de/~si/seminare/ws07/Ausarbeitung/11.javascript/">Objektorientierung in JavaScript</a></li> <li><a rel="nofollow" class="external text" href="https://eloquentjavascript.net/">Eloquent JavaScript</a> (Frei verfügbares <a href="/wiki/E-Book" title="E-Book">E-Book</a>, englisch)</li></ul> <div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=JavaScript&amp;veaction=edit&amp;section=41" title="Abschnitt bearbeiten: Einzelnachweise" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=JavaScript&amp;action=edit&amp;section=41" title="Quellcode des Abschnitts bearbeiten: Einzelnachweise"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.ecma-international.org/publications-and-standards/standards/ecma-262/"><i>ECMAScript® 2023 Language Specification.</i></a>&#32;In:&#32;<i>www.ecma-international.org.</i>&#32;Ecma International,&#32;Juni 2023&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2023</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=ECMAScript%C2%AE+2023+Language+Specification&amp;rft.description=ECMAScript%C2%AE+2023+Language+Specification&amp;rft.identifier=&amp;rft.publisher=Ecma+International&amp;rft.date=2023-06&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Stefan Koch&#58; <cite style="font-style:italic">JavaScript</cite>. Einführung, Programmierung und Referenz – inklusive Ajax. 5. Auflage. dpunkt.verlag, Heidelberg 2009, <a href="/wiki/Spezial:ISBN-Suche/9783898645942" class="internal mw-magiclink-isbn">ISBN 978-3-89864-594-2</a>, Überblick, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em">&#160;</span>5–17</span> (457&#160;S.).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abookitem&amp;rfr_id=info:sid/de.wikipedia.org:JavaScript&amp;rft.atitle=%C3%9Cberblick&amp;rft.au=Stefan+Koch&amp;rft.btitle=JavaScript&amp;rft.date=2009&amp;rft.edition=5&amp;rft.genre=bookitem&amp;rft.isbn=9783898645942&amp;rft.pages=5-17&amp;rft.place=Heidelberg&amp;rft.pub=dpunkt.verlag" style="display:none">&#160;</span></span> </li> <li id="cite_note-Mikrocontroller-3"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-Mikrocontroller_3-0">a</a></sup> <sup><a href="#cite_ref-Mikrocontroller_3-1">b</a></sup></span> <span class="reference-text"><span class="cite">Olaf Göllner:&#32;<a rel="nofollow" class="external text" href="https://www.heise.de/newsticker/meldung/JavaScript-fuer-Mikrocontroller-1934018.html"><i>JavaScript für Mikrocontroller.</i></a>&#32;In:&#32;<i>heise online.</i>&#32;Verlag Heinz Heise,&#32;13.&#160;August 2013&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=JavaScript+f%C3%BCr+Mikrocontroller&amp;rft.description=JavaScript+f%C3%BCr+Mikrocontroller&amp;rft.identifier=https%3A%2F%2Fwww.heise.de%2Fnewsticker%2Fmeldung%2FJavaScript-fuer-Mikrocontroller-1934018.html&amp;rft.creator=Olaf+G%C3%B6llner&amp;rft.publisher=Verlag+Heinz+Heise&amp;rft.date=2013-08-13">&#160;</span></span> </li> <li id="cite_note-Dinge-4"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-Dinge_4-0">a</a></sup> <sup><a href="#cite_ref-Dinge_4-1">b</a></sup></span> <span class="reference-text"><span class="cite">Olaf Göllner:&#32;<a rel="nofollow" class="external text" href="https://www.heise.de/newsticker/meldung/Tessel-JavaScript-Entwicklerboard-fuers-Internet-der-Dinge-1936379.html"><i>Tessel: JavaScript-Entwicklerboard fürs „Internet der Dinge“.</i></a>&#32;In:&#32;<i>heise online.</i>&#32;Verlag Heinz Heise,&#32;15.&#160;August 2013&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Tessel%3A+JavaScript-Entwicklerboard+f%C3%BCrs+%E2%80%9EInternet+der+Dinge%E2%80%9C&amp;rft.description=Tessel%3A+JavaScript-Entwicklerboard+f%C3%BCrs+%E2%80%9EInternet+der+Dinge%E2%80%9C&amp;rft.identifier=https%3A%2F%2Fwww.heise.de%2Fnewsticker%2Fmeldung%2FTessel-JavaScript-Entwicklerboard-fuers-Internet-der-Dinge-1936379.html&amp;rft.creator=Olaf+G%C3%B6llner&amp;rft.publisher=Verlag+Heinz+Heise&amp;rft.date=2013-08-15">&#160;</span></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text">Stefan Koch&#58; <cite style="font-style:italic">JavaScript</cite>. Einführung, Programmierung und Referenz – inklusive Ajax. 5. Auflage. dpunkt.verlag, Heidelberg 2009, <a href="/wiki/Spezial:ISBN-Suche/9783898645942" class="internal mw-magiclink-isbn">ISBN 978-3-89864-594-2</a>, JavaScript im Browser, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em">&#160;</span>137–156</span> (457&#160;S.).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abookitem&amp;rfr_id=info:sid/de.wikipedia.org:JavaScript&amp;rft.atitle=JavaScript+im+Browser&amp;rft.au=Stefan+Koch&amp;rft.btitle=JavaScript&amp;rft.date=2009&amp;rft.edition=5&amp;rft.genre=bookitem&amp;rft.isbn=9783898645942&amp;rft.pages=137-156&amp;rft.place=Heidelberg&amp;rft.pub=dpunkt.verlag" style="display:none">&#160;</span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text"><span class="cite">Jens Ihlenfeld:&#32;<a rel="nofollow" class="external text" href="https://www.golem.de/0911/71418.html"><i>Node – strikt ereignisorientierter Javascript-Server.</i></a>&#32;In:&#32;<i>Golem.de.</i>&#32;24.&#160;November 2009&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Node+%E2%80%93+strikt+ereignisorientierter+Javascript-Server&amp;rft.description=Node+%E2%80%93+strikt+ereignisorientierter+Javascript-Server&amp;rft.identifier=https%3A%2F%2Fwww.golem.de%2F0911%2F71418.html&amp;rft.creator=Jens+Ihlenfeld&amp;rft.date=2009-11-24">&#160;</span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text"><span class="cite">Steve Champeon:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20160719020828/http://archive.oreilly.com/pub/a/javascript/2001/04/06/js_history.html"><i>JavaScript: How Did We Get Here?</i></a>&#32;In:&#32;<i>Web DevCenter.</i>&#32;O’Reilly,&#32;6.&#160;April 2001,&#32;archiviert&#32;vom&#32;<style data-mw-deduplicate="TemplateStyles:r235239667">.mw-parser-output .dewiki-iconexternal>a{background-position:center right;background-repeat:no-repeat}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("https://upload.wikimedia.org/wikipedia/commons/a/a4/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("https://upload.wikimedia.org/wikipedia/commons/3/30/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("https://upload.wikimedia.org/wikipedia/commons/9/96/Link-external-small-ltr-progressive.svg")!important;background-size:0.857em;padding-right:1em!important}</style><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Farchive.oreilly.com%2Fpub%2Fa%2Fjavascript%2F2001%2F04%2F06%2Fjs_history.html">Original</a></span>&#32;(nicht mehr online verfügbar)&#32;am&#32;<span style="white-space:nowrap;">19.&#160;Juli 2016</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=JavaScript%3A+How+Did+We+Get+Here%3F&amp;rft.description=JavaScript%3A+How+Did+We+Get+Here%3F&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20160719020828%2Fhttp%3A%2F%2Farchive.oreilly.com%2Fpub%2Fa%2Fjavascript%2F2001%2F04%2F06%2Fjs_history.html&amp;rft.creator=Steve+Champeon&amp;rft.publisher=O%E2%80%99Reilly&amp;rft.date=2001-04-06&amp;rft.source=http&#58;//archive.oreilly.com/pub/a/javascript/2001/04/06/js_history.html&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text"><span class="cite">Chris Mills:&#32;<a rel="nofollow" class="external text" href="https://www.w3.org/community/webed/wiki/A_Short_History_of_JavaScript"><i>A Short History of JavaScript.</i></a>&#32;In:&#32;<i>Web Education Community Group Wiki.</i>&#32;W3C,&#32;27.&#160;Juli 2012&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=A+Short+History+of+JavaScript&amp;rft.description=A+Short+History+of+JavaScript&amp;rft.identifier=https%3A%2F%2Fwww.w3.org%2Fcommunity%2Fwebed%2Fwiki%2FA_Short_History_of_JavaScript&amp;rft.creator=Chris+Mills&amp;rft.publisher=W3C&amp;rft.date=2012-07-27&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text">Auskunft zur Marke&#160;<i><a rel="nofollow" class="external text" href="https://register.dpma.de/DPMAregister/marke/register/395492653/DE">JAVASCRIPT</a></i> im Register des <a href="/wiki/Deutsches_Patent-_und_Markenamt" title="Deutsches Patent- und Markenamt">Deutschen Patent- und Markenamtes</a> (DPMA)</span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><a href="#cite_ref-10">↑</a></span> <span class="reference-text"><span class="cite">Ingo Pakalski:&#32;<a rel="nofollow" class="external text" href="https://www.golem.de/0805/59377.html"><i>15 Jahre WWW: Die Browserkriege.</i></a>&#32;Der erste Browserkrieg zwingt Netscape in die Knie.&#32;In:&#32;<i>Golem.de.</i>&#32;1.&#160;Mai 2008&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=15+Jahre+WWW%3A+Die+Browserkriege&amp;rft.description=15+Jahre+WWW%3A+Die+Browserkriege&amp;rft.identifier=https%3A%2F%2Fwww.golem.de%2F0805%2F59377.html&amp;rft.creator=Ingo+Pakalski&amp;rft.date=2008-05-01">&#160;</span></span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><a href="#cite_ref-11">↑</a></span> <span class="reference-text">Klaus-Peter Kerbusk&#58; <cite style="font-style:italic">Mißbrauch des Monopols</cite>. In: <cite style="font-style:italic"><a href="/wiki/Der_Spiegel" title="Der Spiegel">Der Spiegel</a></cite>. <span style="white-space:nowrap">Nr.<span style="display:inline-block;width:.2em">&#160;</span>44</span>, 1997 (<a rel="nofollow" class="external text" href="https://www.spiegel.de/spiegel/print/d-8810060.html">online</a>).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rfr_id=info:sid/de.wikipedia.org:JavaScript&amp;rft.atitle=Mi%C3%9Fbrauch+des+Monopols&amp;rft.au=Klaus-Peter+Kerbusk&amp;rft.date=1997&amp;rft.genre=journal&amp;rft.issue=44&amp;rft.jtitle=Der+Spiegel" style="display:none">&#160;</span></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><a href="#cite_ref-12">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://docs.oracle.com/javase/6/docs/technotes/guides/scripting/index.html"><i>Scripting for the Java Platform.</i></a>&#32;In:&#32;<i>Java SE Documentation.</i>&#32;<a href="/wiki/Oracle" title="Oracle">Oracle</a>&#44;<span class="Abrufdatum">&#32;abgerufen am 24.&#160;Oktober 2012</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Scripting+for+the+Java+Platform&amp;rft.description=Scripting+for+the+Java+Platform&amp;rft.identifier=https%3A%2F%2Fdocs.oracle.com%2Fjavase%2F6%2Fdocs%2Ftechnotes%2Fguides%2Fscripting%2Findex.html&amp;rft.publisher=%5B%5BOracle%5D%5D&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><a href="#cite_ref-13">↑</a></span> <span class="reference-text"><span class="cite">Florian Scholz, Eric Shepherd:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20160728221239/https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/1.3"><i>New in JavaScript 1.3.</i></a>&#32;In:&#32;<i>Mozilla Developer Network.</i>&#32;Mozilla Foundation,&#32;20.&#160;Januar 2016,&#32;archiviert&#32;vom&#32;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r235239667"><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FJavaScript%2FNew_in_JavaScript%2F1.3">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">28.&#160;Juli 2016</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=New+in+JavaScript+1.3&amp;rft.description=New+in+JavaScript+1.3&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20160728221239%2Fhttps%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FJavaScript%2FNew_in_JavaScript%2F1.3&amp;rft.creator=Florian+Scholz%2C+Eric+Shepherd&amp;rft.publisher=Mozilla+Foundation&amp;rft.date=2016-01-20&amp;rft.source=https&#58;//developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/1.3&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><a href="#cite_ref-14">↑</a></span> <span class="reference-text"><span class="cite">Florian Scholz, Eric Shepherd:&#32;<a rel="nofollow" class="external text" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/1.4"><i>New in JavaScript 1.4.</i></a>&#32;In:&#32;<i>Mozilla Developer Network.</i>&#32;Mozilla Foundation,&#32;20.&#160;Januar 2016&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=New+in+JavaScript+1.4&amp;rft.description=New+in+JavaScript+1.4&amp;rft.identifier=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FJavaScript%2FNew_in_JavaScript%2F1.4&amp;rft.creator=Florian+Scholz%2C+Eric+Shepherd&amp;rft.publisher=Mozilla+Foundation&amp;rft.date=2016-01-20&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><a href="#cite_ref-15">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20040802225238/http://developer.netscape.com/docs/manuals/js/core/jsref/index.htm"><i>New Features in this Release.</i></a>&#32;In:&#32;<i>DevEdge Online Documentation.</i>&#32;Netscape Communications Corporation,&#32;29.&#160;Oktober 1998,&#32;archiviert&#32;vom&#32;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r235239667"><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fdeveloper.netscape.com%2Fdocs%2Fmanuals%2Fjs%2Fcore%2Fjsref%2Findex.htm">Original</a></span>&#32;(nicht mehr online verfügbar)&#32;am&#32;<span style="white-space:nowrap;">2.&#160;August 2004</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=New+Features+in+this+Release&amp;rft.description=New+Features+in+this+Release&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20040802225238%2Fhttp%3A%2F%2Fdeveloper.netscape.com%2Fdocs%2Fmanuals%2Fjs%2Fcore%2Fjsref%2Findex.htm&amp;rft.publisher=Netscape+Communications+Corporation&amp;rft.date=1998-10-29&amp;rft.source=http&#58;//developer.netscape.com/docs/manuals/js/core/jsref/index.htm&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><a href="#cite_ref-16">↑</a></span> <span class="reference-text"><span class="cite">Florian Scholz, Eric Shepherd:&#32;<a rel="nofollow" class="external text" href="https://developer.mozilla.org/en-US/profiles/Sheppy"><i>New in JavaScript 1.5.</i></a>&#32;In:&#32;<i>Mozilla Developer Network.</i>&#32;Mozilla Foundation&#44;<span class="Abrufdatum">&#32;abgerufen am 20.&#160;Januar 2016</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=New+in+JavaScript+1.5&amp;rft.description=New+in+JavaScript+1.5&amp;rft.identifier=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fprofiles%2FSheppy&amp;rft.creator=Florian+Scholz%2C+Eric+Shepherd&amp;rft.publisher=Mozilla+Foundation&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><a href="#cite_ref-17">↑</a></span> <span class="reference-text"><span class="cite">Wladimir Palant, SylvainPasche, Nickolay Ponomarev, Florian Scholz, Eric Shepherd:&#32;<a rel="nofollow" class="external text" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/1.6"><i>New in JavaScript 1.6.</i></a>&#32;In:&#32;<i>Mozilla Developer Network.</i>&#32;Mozilla Foundation,&#32;4.&#160;April 2016&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=New+in+JavaScript+1.6&amp;rft.description=New+in+JavaScript+1.6&amp;rft.identifier=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FJavaScript%2FNew_in_JavaScript%2F1.6&amp;rft.creator=Wladimir+Palant%2C+SylvainPasche%2C+Nickolay+Ponomarev%2C+Florian+Scholz%2C+Eric+Shepherd&amp;rft.publisher=Mozilla+Foundation&amp;rft.date=2016-04-04&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-18"><span class="mw-cite-backlink"><a href="#cite_ref-18">↑</a></span> <span class="reference-text"><span class="cite">Florian Scholz, James Herdman, Eric Shepherd, Robert Sedovšek, David Bruant, Leo Balter, Jonathan Watt, Eli Grey, Nickolay Ponomarev, Martin Honnen, Evan Prodromou:&#32;<a rel="nofollow" class="external text" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/1.7"><i>New in JavaScript 1.7.</i></a>&#32;In:&#32;<i>Mozilla Developer Network.</i>&#32;Mozilla Foundation,&#32;21.&#160;Oktober 2015&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=New+in+JavaScript+1.7&amp;rft.description=New+in+JavaScript+1.7&amp;rft.identifier=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FJavaScript%2FNew_in_JavaScript%2F1.7&amp;rft.creator=Florian+Scholz%2C+James+Herdman%2C+Eric+Shepherd%2C+Robert+Sedov%C5%A1ek%2C+David+Bruant%2C+Leo+Balter%2C+Jonathan+Watt%2C+Eli+Grey%2C+Nickolay+Ponomarev%2C+Martin+Honnen%2C+Evan+Prodromou&amp;rft.publisher=Mozilla+Foundation&amp;rft.date=2015-10-21&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><a href="#cite_ref-19">↑</a></span> <span class="reference-text"><span class="cite">Florian Scholz, Eli Grey, Leandro Mercês Xavier, Nickolay Ponomarev:&#32;<a rel="nofollow" class="external text" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/1.8"><i>New in JavaScript 1.8.</i></a>&#32;In:&#32;<i>Mozilla Developer Network.</i>&#32;Mozilla Foundation,&#32;20.&#160;Januar 2016&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=New+in+JavaScript+1.8&amp;rft.description=New+in+JavaScript+1.8&amp;rft.identifier=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FJavaScript%2FNew_in_JavaScript%2F1.8&amp;rft.creator=Florian+Scholz%2C+Eli+Grey%2C+Leandro+Merc%C3%AAs+Xavier%2C+Nickolay+Ponomarev&amp;rft.publisher=Mozilla+Foundation&amp;rft.date=2016-01-20&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><a href="#cite_ref-20">↑</a></span> <span class="reference-text"><span class="cite">John Resig:&#32;<a rel="nofollow" class="external text" href="https://johnresig.com/blog/versions-of-javascript/"><i>Versions of JavaScript.</i></a>&#32;In:&#32;<i>johnresig.com/.</i>&#32;22.&#160;April 2008&#44;<span class="Abrufdatum">&#32;abgerufen am 8.&#160;Juni 2020</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Versions+of+JavaScript&amp;rft.description=Versions+of+JavaScript&amp;rft.identifier=https%3A%2F%2Fjohnresig.com%2Fblog%2Fversions-of-javascript%2F&amp;rft.creator=John+Resig&amp;rft.date=2008-04-22&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-21"><span class="mw-cite-backlink"><a href="#cite_ref-21">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.ecma-international.org/publications-and-standards/standards/ecma-262/"><i>ECMAScript 2022 Language Specification.</i></a>&#32;Juni 2022&#44;<span class="Abrufdatum">&#32;abgerufen am 22.&#160;Juli 2022</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=ECMAScript+2022+Language+Specification&amp;rft.description=ECMAScript+2022+Language+Specification&amp;rft.identifier=https%3A%2F%2Fwww.ecma-international.org%2Fpublications-and-standards%2Fstandards%2Fecma-262%2F&amp;rft.date=2022-06&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><a href="#cite_ref-22">↑</a></span> <span class="reference-text"><span class="cite">Julia Schmidt:&#32;<a rel="nofollow" class="external text" href="https://www.heise.de/developer/meldung/Standard-fuer-ECMAScript-soll-jaehrlich-Updates-erhalten-2526864.html"><i>Standard für ECMAScript soll jährlich Updates erhalten.</i></a>&#32;In:&#32;<i><a href="/wiki/Heise_online" title="Heise online">heise</a> Developer.</i>&#32;23.&#160;Januar 2015&#44;<span class="Abrufdatum">&#32;abgerufen am 22.&#160;Oktober 2015</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Standard+f%C3%BCr+ECMAScript+soll+j%C3%A4hrlich+Updates+erhalten&amp;rft.description=Standard+f%C3%BCr+ECMAScript+soll+j%C3%A4hrlich+Updates+erhalten&amp;rft.identifier=https%3A%2F%2Fwww.heise.de%2Fdeveloper%2Fmeldung%2FStandard-fuer-ECMAScript-soll-jaehrlich-Updates-erhalten-2526864.html&amp;rft.creator=Julia+Schmidt&amp;rft.date=2015-01-23">&#160;</span></span> </li> <li id="cite_note-23"><span class="mw-cite-backlink"><a href="#cite_ref-23">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://github.com/tc39/ecma262/"><i>tc39/ecma262.</i></a>&#32;In:&#32;<i>GitHub.</i><span class="Abrufdatum">&#32;Abgerufen am 2.&#160;Januar 2017</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=tc39%2Fecma262&amp;rft.description=tc39%2Fecma262&amp;rft.identifier=https%3A%2F%2Fgithub.com%2Ftc39%2Fecma262%2F">&#160;</span></span> </li> <li id="cite_note-24"><span class="mw-cite-backlink"><a href="#cite_ref-24">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=Kq4FpMe6cRs">Changes to JavaScript, Part 1: EcmaScript 5</a></span> </li> <li id="cite_note-25"><span class="mw-cite-backlink"><a href="#cite_ref-25">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.ecma-international.org/ecma-262/6.0/index.html"><i>ECMAScript 2015 Language Specification.</i></a><span class="Abrufdatum">&#32;Abgerufen am 2.&#160;Januar 2017</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=ECMAScript+2015+Language+Specification&amp;rft.description=ECMAScript+2015+Language+Specification&amp;rft.identifier=https%3A%2F%2Fwww.ecma-international.org%2Fecma-262%2F6.0%2Findex.html&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-26"><span class="mw-cite-backlink"><a href="#cite_ref-26">↑</a></span> <span class="reference-text"><cite class="lang" lang="en" dir="auto" style="font-style:italic">ECMAScript 2016 Language Specification</cite>. 7. Auflage. Emca International, Genf (englisch, 586&#160;S., <a rel="nofollow" class="external text" href="https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">ecma-international.org</a> &#91;PDF&#93;).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:JavaScript&amp;rft.btitle=ECMAScript+2016+Language+Specification&amp;rft.edition=7&amp;rft.genre=book&amp;rft.place=Genf&amp;rft.pub=Emca+International" style="display:none">&#160;</span> <style data-mw-deduplicate="TemplateStyles:r246413598">.mw-parser-output .webarchiv-memento{color:var(--color-base,#202122)!important}</style><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150412040502/https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">ECMAScript 2016 Language Specification</a> (<a href="/wiki/Web-Archivierung#Begrifflichkeiten" title="Web-Archivierung"><span class="webarchiv-memento">Memento</span></a> vom 12. April 2015 im <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</span> </li> <li id="cite_note-27"><span class="mw-cite-backlink"><a href="#cite_ref-27">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://kangax.github.io/compat-table/es6/"><i>ECMAScript 6 compatibility table.</i></a>&#32;In:&#32;<i>kangax.github.io.</i><span class="Abrufdatum">&#32;Abgerufen am 2.&#160;Januar 2017</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=ECMAScript+6+compatibility+table&amp;rft.description=ECMAScript+6+compatibility+table&amp;rft.identifier=https%3A%2F%2Fkangax.github.io%2Fcompat-table%2Fes6%2F&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-28"><span class="mw-cite-backlink"><a href="#cite_ref-28">↑</a></span> <span class="reference-text">Nicholas C. Zakas&#58; <cite class="lang" lang="en" dir="auto" style="font-style:italic">Professional JavaScript for Web Developers</cite>. John Wiley &amp; Sons., 2011, <a href="/wiki/Spezial:ISBN-Suche/9781118026694" class="internal mw-magiclink-isbn">ISBN 978-1-118-02669-4</a> (englisch, 960&#160;S.).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:JavaScript&amp;rft.au=Nicholas+C.+Zakas&amp;rft.btitle=Professional+JavaScript+for+Web+Developers&amp;rft.date=2011&amp;rft.genre=book&amp;rft.isbn=9781118026694&amp;rft.pub=John+Wiley+%26+Sons." style="display:none">&#160;</span></span> </li> <li id="cite_note-29"><span class="mw-cite-backlink"><a href="#cite_ref-29">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.ecma-international.org/ecma-262/8.0/index.html"><i>ECMAScript 2017 Language Specification.</i></a>&#32;Juni 2017&#44;<span class="Abrufdatum">&#32;abgerufen am 5.&#160;Dezember 2017</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=ECMAScript+2017+Language+Specification&amp;rft.description=ECMAScript+2017+Language+Specification&amp;rft.identifier=https%3A%2F%2Fwww.ecma-international.org%2Fecma-262%2F8.0%2Findex.html&amp;rft.date=2017-06&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-30"><span class="mw-cite-backlink"><a href="#cite_ref-30">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.heise.de/developer/meldung/JavaScript-Standard-ECMAScript-2016-offiziell-verabschiedet-3240246.html"><i>JavaScript-Standard ECMAScript 2016 offiziell verabschiedet.</i></a>&#32;In:&#32;<i>heise online.</i>&#32;heise Developer,&#32;17.&#160;Juni 2016&#44;<span class="Abrufdatum">&#32;abgerufen am 3.&#160;Januar 2017</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=JavaScript-Standard+ECMAScript+2016+offiziell+verabschiedet&amp;rft.description=JavaScript-Standard+ECMAScript+2016+offiziell+verabschiedet&amp;rft.identifier=https%3A%2F%2Fwww.heise.de%2Fdeveloper%2Fmeldung%2FJavaScript-Standard-ECMAScript-2016-offiziell-verabschiedet-3240246.html&amp;rft.publisher=heise+Developer&amp;rft.date=2016-06-17">&#160;</span></span> </li> <li id="cite_note-kangax-31"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-kangax_31-0">a</a></sup> <sup><a href="#cite_ref-kangax_31-1">b</a></sup></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://kangax.github.io/compat-table/es2016plus/"><i>ECMAScript Next compatibility table.</i></a>&#32;In:&#32;<i>kangax.github.io.</i><span class="Abrufdatum">&#32;Abgerufen am 2.&#160;Januar 2017</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=ECMAScript+Next+compatibility+table&amp;rft.description=ECMAScript+Next+compatibility+table&amp;rft.identifier=https%3A%2F%2Fkangax.github.io%2Fcompat-table%2Fes2016plus%2F">&#160;</span></span> </li> <li id="cite_note-32"><span class="mw-cite-backlink"><a href="#cite_ref-32">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.ecma-international.org/ecma-262/8.0/index.html"><i>ECMAScript 2017 Language Specification.</i></a>&#32;Ecma International,&#32;Juni 2017&#44;<span class="Abrufdatum">&#32;abgerufen am 4.&#160;August 2017</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=ECMAScript+2017+Language+Specification&amp;rft.description=ECMAScript+2017+Language+Specification&amp;rft.identifier=https%3A%2F%2Fwww.ecma-international.org%2Fecma-262%2F8.0%2Findex.html&amp;rft.publisher=Ecma+International&amp;rft.date=2017-06&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-33"><span class="mw-cite-backlink"><a href="#cite_ref-33">↑</a></span> <span class="reference-text"><span class="cite">Christian Liebel:&#32;<a rel="nofollow" class="external text" href="https://www.heise.de/developer/artikel/Evolution-im-Web-ECMAScript-2017-3786219.html"><i>Evolution im Web: ECMAScript 2017.</i></a>&#32;heise Developer,&#32;1.&#160;August 2017&#44;<span class="Abrufdatum">&#32;abgerufen am 4.&#160;August 2017</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Evolution+im+Web%3A+ECMAScript+2017&amp;rft.description=Evolution+im+Web%3A+ECMAScript+2017&amp;rft.identifier=https%3A%2F%2Fwww.heise.de%2Fdeveloper%2Fartikel%2FEvolution-im-Web-ECMAScript-2017-3786219.html&amp;rft.creator=Christian+Liebel&amp;rft.publisher=heise+Developer&amp;rft.date=2017-08-01">&#160;</span></span> </li> <li id="cite_note-34"><span class="mw-cite-backlink"><a href="#cite_ref-34">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://exploringjs.com/es2016-es2017/pt_es2017.html"><i>ECMAScript 2017.</i></a>&#32;In:&#32;<i>Exploring ES2016 and ES2017.</i>&#32;22.&#160;März 2017&#44;<span class="Abrufdatum">&#32;abgerufen am 4.&#160;August 2017</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=ECMAScript+2017&amp;rft.description=ECMAScript+2017&amp;rft.identifier=https%3A%2F%2Fexploringjs.com%2Fes2016-es2017%2Fpt_es2017.html&amp;rft.date=2017-03-22&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-35"><span class="mw-cite-backlink"><a href="#cite_ref-35">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.heise.de/developer/meldung/JavaScript-Standard-ECMAScript-2018-offiziell-verabschiedet-4094119.html">JavaScript-Standard ECMAScript 2018 offiziell verabschiedet</a> heise.de, am 28. Juni 2018</span> </li> <li id="cite_note-36"><span class="mw-cite-backlink"><a href="#cite_ref-36">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://github.com/tc39/proposals"><i>Tracking ECMAScript Proposals.</i></a>&#32;In:&#32;<i>TC39.</i>&#32;Ecma&#44;<span class="Abrufdatum">&#32;abgerufen am 4.&#160;August 2017</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Tracking+ECMAScript+Proposals&amp;rft.description=Tracking+ECMAScript+Proposals&amp;rft.identifier=https%3A%2F%2Fgithub.com%2Ftc39%2Fproposals&amp;rft.publisher=Ecma&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-37"><span class="mw-cite-backlink"><a href="#cite_ref-37">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.heise.de/developer/meldung/ECMAScript-2019-Neun-Neuerungen-fuer-den-JavaScript-Sprachstandard-4296951.html"><i>ECMAScript 2019: Neun Neuerungen für den JavaScript-Sprachstandard.</i></a>&#32;In:&#32;<i>heise online.</i>&#32;heise online,&#32;4.&#160;Februar 2019&#44;<span class="Abrufdatum">&#32;abgerufen am 17.&#160;April 2020</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=ECMAScript+2019%3A+Neun+Neuerungen+f%C3%BCr+den+JavaScript-Sprachstandard&amp;rft.description=ECMAScript+2019%3A+Neun+Neuerungen+f%C3%BCr+den+JavaScript-Sprachstandard&amp;rft.identifier=https%3A%2F%2Fwww.heise.de%2Fdeveloper%2Fmeldung%2FECMAScript-2019-Neun-Neuerungen-fuer-den-JavaScript-Sprachstandard-4296951.html&amp;rft.publisher=heise+online&amp;rft.date=2019-02-04">&#160;</span></span> </li> <li id="cite_note-38"><span class="mw-cite-backlink"><a href="#cite_ref-38">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.heise.de/developer/meldung/JavaScript-Die-Features-fuer-ECMAScript-2020-stehen-fest-4697505.html"><i>JavaScript: Die Features für ECMAScript 2020 stehen fest.</i></a>&#32;In:&#32;<i>heise online.</i>&#32;heise online,&#32;6.&#160;April 2020&#44;<span class="Abrufdatum">&#32;abgerufen am 19.&#160;Juni 2020</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=JavaScript%3A+Die+Features+f%C3%BCr+ECMAScript+2020+stehen+fest&amp;rft.description=JavaScript%3A+Die+Features+f%C3%BCr+ECMAScript+2020+stehen+fest&amp;rft.identifier=https%3A%2F%2Fwww.heise.de%2Fdeveloper%2Fmeldung%2FJavaScript-Die-Features-fuer-ECMAScript-2020-stehen-fest-4697505.html&amp;rft.publisher=heise+online&amp;rft.date=2020-04-06">&#160;</span></span> </li> <li id="cite_note-39"><span class="mw-cite-backlink"><a href="#cite_ref-39">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.heise.de/news/JavaScript-2021-Schwache-Referenzen-beliebige-Versprechen-und-neue-Zuweisungen-4851658.html"><i>JavaScript 2021: Schwache Referenzen, beliebige Versprechen und neue Zuweisungen.</i></a>&#32;In:&#32;<i>heise online.</i>&#32;heise online,&#32;24.&#160;Juli 2020&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;September 2021</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=JavaScript+2021%3A+Schwache+Referenzen%2C+beliebige+Versprechen+und+neue+Zuweisungen&amp;rft.description=JavaScript+2021%3A+Schwache+Referenzen%2C+beliebige+Versprechen+und+neue+Zuweisungen&amp;rft.identifier=https%3A%2F%2Fwww.heise.de%2Fnews%2FJavaScript-2021-Schwache-Referenzen-beliebige-Versprechen-und-neue-Zuweisungen-4851658.html&amp;rft.publisher=heise+online&amp;rft.date=2020-07-24">&#160;</span></span> </li> <li id="cite_note-40"><span class="mw-cite-backlink"><a href="#cite_ref-40">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://tc39.es/ecma262/">ECMAScript® 2022 Language Specification</a></span> </li> <li id="cite_note-41"><span class="mw-cite-backlink"><a href="#cite_ref-41">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://medium.com/geekculture/proposals-included-in-the-incoming-ecmascript-2022-standard-for-javascript-6119a4518904"><i>Proposals included in the incoming ECMAScript 2022 standard for JavaScript.</i></a>&#32;In:&#32;<i>geek culture.</i>&#32;geek culture,&#32;2.&#160;September 2021&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;September 2021</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Proposals+included+in+the+incoming+ECMAScript+2022+standard+for+JavaScript&amp;rft.description=Proposals+included+in+the+incoming+ECMAScript+2022+standard+for+JavaScript&amp;rft.identifier=https%3A%2F%2Fmedium.com%2Fgeekculture%2Fproposals-included-in-the-incoming-ecmascript-2022-standard-for-javascript-6119a4518904&amp;rft.publisher=geek+culture&amp;rft.date=2021-09-02">&#160;</span></span> </li> <li id="cite_note-42"><span class="mw-cite-backlink"><a href="#cite_ref-42">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.w3.org/TR/workers/"><i>W3C Working Draft 24 September 2015.</i></a>&#32;In:&#32;<i>w3.org.</i><span class="Abrufdatum">&#32;Abgerufen am 28.&#160;Juli 2016</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=W3C+Working+Draft+24+September+2015&amp;rft.description=W3C+Working+Draft+24+September+2015&amp;rft.identifier=https%3A%2F%2Fwww.w3.org%2FTR%2Fworkers%2F">&#160;</span></span> </li> <li id="cite_note-43"><span class="mw-cite-backlink"><a href="#cite_ref-43">↑</a></span> <span class="reference-text"><span class="cite">Ilja Zaglov:&#32;<a rel="nofollow" class="external text" href="https://t3n.de/news/typescript-microsofts-neue-418900/"><i>TypeScript: Microsoft’s neue JavaScript Erweiterung.</i></a>&#32;In:&#32;<i><a href="/wiki/T3n_Magazin" title="T3n Magazin">t3n Magazin</a>.</i>&#32;10.&#160;Oktober 2012&#44;<span class="Abrufdatum">&#32;abgerufen am 10.&#160;Oktober 2012</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=TypeScript%3A+Microsoft%E2%80%99s+neue+JavaScript+Erweiterung&amp;rft.description=TypeScript%3A+Microsoft%E2%80%99s+neue+JavaScript+Erweiterung&amp;rft.identifier=https%3A%2F%2Ft3n.de%2Fnews%2Ftypescript-microsofts-neue-418900%2F&amp;rft.creator=Ilja+Zaglov&amp;rft.date=2012-10-10">&#160;</span></span> </li> <li id="cite_note-44"><span class="mw-cite-backlink"><a href="#cite_ref-44">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://wiki.selfhtml.org/wiki/JavaScript/Objekte/Array#assoziative_arrays"><i>JavaScript/Objekte/Array.</i></a>&#32;In:&#32;<i>SELFHTML.</i>&#32;15.&#160;Juli 2016&#44;<span class="Abrufdatum">&#32;abgerufen am 27.&#160;Juli 2016</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=JavaScript%2FObjekte%2FArray&amp;rft.description=JavaScript%2FObjekte%2FArray&amp;rft.identifier=https%3A%2F%2Fwiki.selfhtml.org%2Fwiki%2FJavaScript%2FObjekte%2FArray%23assoziative_arrays&amp;rft.date=2016-07-15">&#160;</span></span> </li> <li id="cite_note-45"><span class="mw-cite-backlink"><a href="#cite_ref-45">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in">for…in</a> MDN</span> </li> <li id="cite_note-46"><span class="mw-cite-backlink"><a href="#cite_ref-46">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty#Enumerable_attribute">Object.defineProperty()</a> MDN</span> </li> <li id="cite_note-47"><span class="mw-cite-backlink"><a href="#cite_ref-47">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for…of</a> MDN</span> </li> <li id="cite_note-48"><span class="mw-cite-backlink"><a href="#cite_ref-48">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://wiki.selfhtml.org/wiki/JavaScript/Variable/let">JavaScript/Variable/let</a> im SELFHTML-Wiki</span> </li> <li id="cite_note-49"><span class="mw-cite-backlink"><a href="#cite_ref-49">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://wiki.selfhtml.org/wiki/JavaScript/Variable/const">JavaScript/Variable/const</a> im SELFHTML-Wiki</span> </li> <li id="cite_note-50"><span class="mw-cite-backlink"><a href="#cite_ref-50">↑</a></span> <span class="reference-text"><span class="cite">Juriy Kangax Zaytsev:&#32;<a rel="nofollow" class="external text" href="https://kangax.github.io/nfe/"><i>Named function expressions demystified.</i></a>&#32;In:&#32;<i>kangax.github.io.</i>&#32;17.&#160;Juni 2009&#44;<span class="Abrufdatum">&#32;abgerufen am 28.&#160;Juli 2016</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Named+function+expressions+demystified&amp;rft.description=Named+function+expressions+demystified&amp;rft.identifier=https%3A%2F%2Fkangax.github.io%2Fnfe%2F&amp;rft.creator=Juriy+Kangax+Zaytsev&amp;rft.date=2009-06-17&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-ECMAScript-51"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-ECMAScript_51-0">a</a></sup> <sup><a href="#cite_ref-ECMAScript_51-1">b</a></sup></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.ecma-international.org/ecma-262/5.1/#sec-15.2.3"><i>ECMAScript Language Specification – ECMA-262 Edition 5.1.</i></a>&#32;In:&#32;<i>ecma-international.org.</i><span class="Abrufdatum">&#32;Abgerufen am 28.&#160;Juli 2016</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=ECMAScript+Language+Specification+%E2%80%93+ECMA-262+Edition+5.1&amp;rft.description=ECMAScript+Language+Specification+%E2%80%93+ECMA-262+Edition+5.1&amp;rft.identifier=https%3A%2F%2Fwww.ecma-international.org%2Fecma-262%2F5.1%2F%23sec-15.2.3">&#160;</span> (<a rel="nofollow" class="external text" href="http://www.ecma-international.org/ecma-262/5.1/Ecma-262.pdf">ecma-international.org</a> (PDF) PDF).</span> </li> <li id="cite_note-52"><span class="mw-cite-backlink"><a href="#cite_ref-52">↑</a></span> <span class="reference-text">Englische Wikipedia: <a href="https://en.wikipedia.org/wiki/Role-oriented_programming" class="extiw" title="en:Role-oriented programming">Role-oriented programming</a></span> </li> <li id="cite_note-53"><span class="mw-cite-backlink"><a href="#cite_ref-53">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://soft.vub.ac.be/~tvcutsem/traitsjs/">Traits for Javascript</a>, 2010.</span> </li> <li id="cite_note-54"><span class="mw-cite-backlink"><a href="#cite_ref-54">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://cocktailjs.github.io/">CocktailJS – Annotations. Traits. Talents.</a> April 2013.</span> </li> <li id="cite_note-55"><span class="mw-cite-backlink"><a href="#cite_ref-55">↑</a></span> <span class="reference-text">Angus Croll, <a rel="nofollow" class="external text" href="https://javascriptweblog.wordpress.com/2011/05/31/a-fresh-look-at-javascript-mixins/">A fresh look at JavaScript Mixins</a> vom 31. Mai 2011.</span> </li> <li id="cite_note-56"><span class="mw-cite-backlink"><a href="#cite_ref-56">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://peterseliger.blogspot.de/2014/06/die-vielen-talente-von-javascript.html#die-vielen-talente-von-javascript-rollen-orientierte-programmieransätze-wie-traits-und-mixins-verallgemeinern-zu-können">Die vielen Talente von JavaScript Rollen-orientierte Programmieransätze wie Traits und Mixins verallgemeinern zu können.</a> peterseliger.blogspot.de; 5. Juni 2014.</span> </li> <li id="cite_note-57"><span class="mw-cite-backlink"><a href="#cite_ref-57">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi">JavaScript Stack Trace API</a> in <i>Google V8 Wiki</i>, Stand 28. Juni 2010, abgerufen am 23. Februar 2013</span> </li> <li id="cite_note-58"><span class="mw-cite-backlink"><a href="#cite_ref-58">↑</a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r246413598"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20141104204221/http://www.aptana.com/reference/html/api/Error.html">JavaScript Core Reference: Error</a> (<a href="/wiki/Web-Archivierung#Begrifflichkeiten" title="Web-Archivierung"><span class="webarchiv-memento">Memento</span></a> vom 4. November 2014 im <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>) in <i>Aptana HTML Reference</i>, Stand 2. Juli 2012, abgerufen am 23. Februar 2013</span> </li> <li id="cite_note-59"><span class="mw-cite-backlink"><a href="#cite_ref-59">↑</a></span> <span class="reference-text"><span class="cite">Tom DuPont:&#32;<a rel="nofollow" class="external text" href="http://www.tomdupont.net/2013/04/report-unhandled-errors-from-javascript.html"><i>Report Unhandled Errors from JavaScript.</i></a>&#32;13.&#160;April 2013&#44;<span class="Abrufdatum">&#32;abgerufen am 16.&#160;April 2013</span>&#32;(englisch,&#32;Fehlerprotokollierung mit Stacktrace in JavaScript).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Report+Unhandled+Errors+from+JavaScript&amp;rft.description=Report+Unhandled+Errors+from+JavaScript&amp;rft.identifier=http%3A%2F%2Fwww.tomdupont.net%2F2013%2F04%2Freport-unhandled-errors-from-javascript.html&amp;rft.creator=Tom+DuPont&amp;rft.date=2013-04-13&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-60"><span class="mw-cite-backlink"><a href="#cite_ref-60">↑</a></span> <span class="reference-text">Nico Reed: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r246413598"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130331135150/http://docs.nodejitsu.com/articles/errors/what-is-the-error-object"><i>What is the error object?</i></a> (<a href="/wiki/Web-Archivierung#Begrifflichkeiten" title="Web-Archivierung"><span class="webarchiv-memento">Memento</span></a> vom 31. März 2013 im <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>) In: <i>Nodejitsu Documentation</i>, Stand 26. August 2011, abgerufen am 23. Februar 2013.</span> </li> <li id="cite_note-61"><span class="mw-cite-backlink"><a href="#cite_ref-61">↑</a></span> <span class="reference-text">Stefan Koch&#58; <cite style="font-style:italic">JavaScript. Einführung, Programmierung und Referenz – inklusive Ajax</cite>. 5. Auflage. dpunkt.verlag, Heidelberg 2009, <a href="/wiki/Spezial:ISBN-Suche/9783898645942" class="internal mw-magiclink-isbn">ISBN 978-3-89864-594-2</a>, Ajax, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em">&#160;</span>333–355</span> (457&#160;S.).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abookitem&amp;rfr_id=info:sid/de.wikipedia.org:JavaScript&amp;rft.atitle=Ajax&amp;rft.au=Stefan+Koch&amp;rft.btitle=JavaScript.+Einf%C3%BChrung%2C+Programmierung+und+Referenz+-+inklusive+Ajax&amp;rft.date=2009&amp;rft.edition=5&amp;rft.genre=bookitem&amp;rft.isbn=9783898645942&amp;rft.pages=333-355&amp;rft.place=Heidelberg&amp;rft.pub=dpunkt.verlag" style="display:none">&#160;</span></span> </li> <li id="cite_note-62"><span class="mw-cite-backlink"><a href="#cite_ref-62">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://developers.google.com/search/docs/guides/javascript-seo-basics?hl=de"><i>Grundlagen von JavaScript-SEO &#124; Google Search Central.</i></a><span class="Abrufdatum">&#32;Abgerufen am 7.&#160;Dezember 2020</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Grundlagen+von+JavaScript-SEO+%7C+Google+Search+Central&amp;rft.description=Grundlagen+von+JavaScript-SEO+%7C+Google+Search+Central&amp;rft.identifier=https%3A%2F%2Fdevelopers.google.com%2Fsearch%2Fdocs%2Fguides%2Fjavascript-seo-basics%3Fhl%3Dde&amp;rft.language=de">&#160;</span></span> </li> <li id="cite_note-63"><span class="mw-cite-backlink"><a href="#cite_ref-63">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://web.dev/google-search-tools/"><i>Web developer tools for debugging JavaScript issues in Google Search.</i></a><span class="Abrufdatum">&#32;Abgerufen am 7.&#160;Dezember 2020</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AJavaScript&amp;rft.title=Web+developer+tools+for+debugging+JavaScript+issues+in+Google+Search&amp;rft.description=Web+developer+tools+for+debugging+JavaScript+issues+in+Google+Search&amp;rft.identifier=https%3A%2F%2Fweb.dev%2Fgoogle-search-tools%2F&amp;rft.language=en">&#160;</span></span> </li> </ol></div> <div class="hintergrundfarbe1 rahmenfarbe1 navigation-not-searchable normdaten-typ-s" style="border-style: solid; border-width: 1px; clear: left; margin-bottom:1em; margin-top:1em; padding: 0.25em; overflow: hidden; word-break: break-word; word-wrap: break-word;" id="normdaten"> <div style="display: table-cell; vertical-align: middle; width: 100%;"> <div> Normdaten&#160;(Sachbegriff): <a href="/wiki/Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>: <span class="plainlinks-print"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4420180-1">4420180-1</a></span> <span class="noprint">(<a rel="nofollow" class="external text" href="https://lobid.org/gnd/4420180-1">lobid</a>, <a rel="nofollow" class="external text" href="https://swb.bsz-bw.de/DB=2.104/SET=1/TTL=1/CMD?retrace=0&amp;trm_old=&amp;ACT=SRCHA&amp;IKT=2999&amp;SRT=RLV&amp;TRM=4420180-1">OGND</a><span class="metadata">, <a rel="nofollow" class="external text" href="https://prometheus.lmu.de/gnd/4420180-1">AKS</a></span>)</span> <span class="metadata"></span></div> </div></div></div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Abgerufen von „<a dir="ltr" href="https://de.wikipedia.org/w/index.php?title=JavaScript&amp;oldid=248921156">https://de.wikipedia.org/w/index.php?title=JavaScript&amp;oldid=248921156</a>“</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Wikipedia:Kategorien" title="Wikipedia:Kategorien">Kategorien</a>: <ul><li><a href="/wiki/Kategorie:ECMAScript" title="Kategorie:ECMAScript">ECMAScript</a></li><li><a href="/wiki/Kategorie:Skriptsprache" title="Kategorie:Skriptsprache">Skriptsprache</a></li><li><a href="/wiki/Kategorie:Objektorientierte_Programmiersprache" title="Kategorie:Objektorientierte Programmiersprache">Objektorientierte Programmiersprache</a></li><li><a href="/wiki/Kategorie:Funktionale_Programmiersprache" title="Kategorie:Funktionale Programmiersprache">Funktionale Programmiersprache</a></li><li><a href="/wiki/Kategorie:Prozedurale_Programmiersprache" title="Kategorie:Prozedurale Programmiersprache">Prozedurale Programmiersprache</a></li></ul></div></div> </div> </div> <div id="mw-navigation"> <h2>Navigationsmenü</h2> <div id="mw-head"> <nav id="p-personal" class="mw-portlet mw-portlet-personal vector-user-menu-legacy vector-menu" aria-labelledby="p-personal-label" > <h3 id="p-personal-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Meine Werkzeuge</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anonuserpage" class="mw-list-item"><span title="Benutzerseite der IP-Adresse, von der aus du Änderungen durchführst">Nicht angemeldet</span></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Spezial:Meine_Diskussionsseite" title="Diskussion über Änderungen von dieser IP-Adresse [n]" accesskey="n"><span>Diskussionsseite</span></a></li><li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Spezial:Meine_Beitr%C3%A4ge" title="Eine Liste der Bearbeitungen, die von dieser IP-Adresse gemacht wurden [y]" accesskey="y"><span>Beiträge</span></a></li><li id="pt-createaccount" class="mw-list-item"><a href="/w/index.php?title=Spezial:Benutzerkonto_anlegen&amp;returnto=JavaScript" title="Wir ermutigen dich dazu, ein Benutzerkonto zu erstellen und dich anzumelden. Es ist jedoch nicht zwingend erforderlich."><span>Benutzerkonto erstellen</span></a></li><li id="pt-login" class="mw-list-item"><a href="/w/index.php?title=Spezial:Anmelden&amp;returnto=JavaScript" title="Anmelden ist zwar keine Pflicht, wird aber gerne gesehen. [o]" accesskey="o"><span>Anmelden</span></a></li> </ul> </div> </nav> <div id="left-navigation"> <nav id="p-namespaces" class="mw-portlet mw-portlet-namespaces vector-menu-tabs vector-menu-tabs-legacy vector-menu" aria-labelledby="p-namespaces-label" > <h3 id="p-namespaces-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Namensräume</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected mw-list-item"><a href="/wiki/JavaScript" title="Seiteninhalt anzeigen [c]" accesskey="c"><span>Artikel</span></a></li><li id="ca-talk" class="mw-list-item"><a href="/wiki/Diskussion:JavaScript" rel="discussion" title="Diskussion zum Seiteninhalt [t]" accesskey="t"><span>Diskussion</span></a></li> </ul> </div> </nav> <nav id="p-variants" class="mw-portlet mw-portlet-variants emptyPortlet vector-menu-dropdown vector-menu" aria-labelledby="p-variants-label" > <input type="checkbox" id="p-variants-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-variants" class="vector-menu-checkbox" aria-labelledby="p-variants-label" > <label id="p-variants-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Deutsch</span> </label> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </nav> </div> <div id="right-navigation"> <nav id="p-views" class="mw-portlet mw-portlet-views vector-menu-tabs vector-menu-tabs-legacy vector-menu" aria-labelledby="p-views-label" > <h3 id="p-views-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Ansichten</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected mw-list-item"><a href="/wiki/JavaScript"><span>Lesen</span></a></li><li id="ca-ve-edit" class="mw-list-item"><a href="/w/index.php?title=JavaScript&amp;veaction=edit" title="Diese Seite mit dem VisualEditor bearbeiten [v]" accesskey="v"><span>Bearbeiten</span></a></li><li id="ca-edit" class="collapsible mw-list-item"><a href="/w/index.php?title=JavaScript&amp;action=edit" title="Den Quelltext dieser Seite bearbeiten [e]" accesskey="e"><span>Quelltext bearbeiten</span></a></li><li id="ca-history" class="mw-list-item"><a href="/w/index.php?title=JavaScript&amp;action=history" title="Frühere Versionen dieser Seite [h]" accesskey="h"><span>Versionsgeschichte</span></a></li> </ul> </div> </nav> <nav id="p-cactions" class="mw-portlet mw-portlet-cactions emptyPortlet vector-menu-dropdown vector-menu" aria-labelledby="p-cactions-label" title="Weitere Optionen" > <input type="checkbox" id="p-cactions-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-cactions" class="vector-menu-checkbox" aria-labelledby="p-cactions-label" > <label id="p-cactions-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Weitere</span> </label> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </nav> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <h3 >Suche</h3> <form action="/w/index.php" id="searchform" class="vector-search-box-form"> <div id="simpleSearch" class="vector-search-box-inner" data-search-loc="header-navigation"> <input class="vector-search-box-input" type="search" name="search" placeholder="Wikipedia durchsuchen" aria-label="Wikipedia durchsuchen" autocapitalize="sentences" title="Durchsuche die Wikipedia [f]" accesskey="f" id="searchInput" > <input type="hidden" name="title" value="Spezial:Suche"> <input id="mw-searchButton" class="searchButton mw-fallbackSearchButton" type="submit" name="fulltext" title="Suche nach Seiten, die diesen Text enthalten" value="Suchen"> <input id="searchButton" class="searchButton" type="submit" name="go" title="Gehe direkt zu der Seite mit genau diesem Namen, falls sie vorhanden ist." value="Artikel"> </div> </form> </div> </div> </div> <div id="mw-panel" class="vector-legacy-sidebar"> <div id="p-logo" role="banner"> <a class="mw-wiki-logo" href="/wiki/Wikipedia:Hauptseite" title="Hauptseite"></a> </div> <nav id="p-navigation" class="mw-portlet mw-portlet-navigation vector-menu-portal portal vector-menu" aria-labelledby="p-navigation-label" > <h3 id="p-navigation-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Navigation</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Wikipedia:Hauptseite" title="Hauptseite besuchen [z]" accesskey="z"><span>Hauptseite</span></a></li><li id="n-topics" class="mw-list-item"><a href="/wiki/Portal:Wikipedia_nach_Themen"><span>Themenportale</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Spezial:Zuf%C3%A4llige_Seite" title="Zufällige Seite aufrufen [x]" accesskey="x"><span>Zufälliger Artikel</span></a></li> </ul> </div> </nav> <nav id="p-Mitmachen" class="mw-portlet mw-portlet-Mitmachen vector-menu-portal portal vector-menu" aria-labelledby="p-Mitmachen-label" > <h3 id="p-Mitmachen-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Mitmachen</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-Artikel-verbessern" class="mw-list-item"><a href="/wiki/Wikipedia:Beteiligen"><span>Artikel verbessern</span></a></li><li id="n-Neuerartikel" class="mw-list-item"><a href="/wiki/Hilfe:Neuen_Artikel_anlegen"><span>Neuen Artikel anlegen</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Autorenportal" title="Info-Zentrum über Beteiligungsmöglichkeiten"><span>Autorenportal</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/Hilfe:%C3%9Cbersicht" title="Übersicht über Hilfeseiten"><span>Hilfe</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Spezial:Letzte_%C3%84nderungen" title="Liste der letzten Änderungen in Wikipedia [r]" accesskey="r"><span>Letzte Änderungen</span></a></li><li id="n-contact" class="mw-list-item"><a href="/wiki/Wikipedia:Kontakt" title="Kontaktmöglichkeiten"><span>Kontakt</span></a></li><li id="n-sitesupport" class="mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_de.wikipedia.org&amp;uselang=de" title="Unterstütze uns"><span>Spenden</span></a></li> </ul> </div> </nav> <nav id="p-tb" class="mw-portlet mw-portlet-tb vector-menu-portal portal vector-menu" aria-labelledby="p-tb-label" > <h3 id="p-tb-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Werkzeuge</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Spezial:Linkliste/JavaScript" title="Liste aller Seiten, die hierher verlinken [j]" accesskey="j"><span>Links auf diese Seite</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Spezial:%C3%84nderungen_an_verlinkten_Seiten/JavaScript" rel="nofollow" title="Letzte Änderungen an Seiten, die von hier verlinkt sind [k]" accesskey="k"><span>Änderungen an verlinkten Seiten</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Spezial:Spezialseiten" title="Liste aller Spezialseiten [q]" accesskey="q"><span>Spezialseiten</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=JavaScript&amp;oldid=248921156" title="Dauerhafter Link zu dieser Seitenversion"><span>Permanenter Link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=JavaScript&amp;action=info" title="Weitere Informationen über diese Seite"><span>Seiten­­informationen</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Spezial:Zitierhilfe&amp;page=JavaScript&amp;id=248921156&amp;wpFormIdentifier=titleform" title="Hinweise, wie diese Seite zitiert werden kann"><span>Artikel zitieren</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Spezial:URL-K%C3%BCrzung&amp;url=https%3A%2F%2Fde.wikipedia.org%2Fwiki%2FJavaScript"><span>Kurzlink</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Spezial:QrCode&amp;url=https%3A%2F%2Fde.wikipedia.org%2Fwiki%2FJavaScript"><span>QR-Code herunterladen</span></a></li> </ul> </div> </nav> <nav id="p-coll-print_export" class="mw-portlet mw-portlet-coll-print_export vector-menu-portal portal vector-menu" aria-labelledby="p-coll-print_export-label" > <h3 id="p-coll-print_export-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Drucken/​exportieren</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Spezial:DownloadAsPdf&amp;page=JavaScript&amp;action=show-download-screen"><span>Als PDF herunterladen</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=JavaScript&amp;printable=yes" title="Druckansicht dieser Seite [p]" accesskey="p"><span>Druckversion</span></a></li> </ul> </div> </nav> <nav id="p-wikibase-otherprojects" class="mw-portlet mw-portlet-wikibase-otherprojects vector-menu-portal portal vector-menu" aria-labelledby="p-wikibase-otherprojects-label" > <h3 id="p-wikibase-otherprojects-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">In anderen Projekten</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:JavaScript" hreflang="en"><span>Commons</span></a></li><li class="wb-otherproject-link wb-otherproject-mediawiki mw-list-item"><a href="https://www.mediawiki.org/wiki/JavaScript" hreflang="en"><span>MediaWiki</span></a></li><li class="wb-otherproject-link wb-otherproject-wikibooks mw-list-item"><a href="https://de.wikibooks.org/wiki/Websiteentwicklung:_JavaScript" hreflang="de"><span>Wikibooks</span></a></li><li class="wb-otherproject-link wb-otherproject-wikifunctions mw-list-item"><a href="https://www.wikifunctions.org/wiki/Z600" hreflang="en"><span>Wikifunctions</span></a></li><li class="wb-otherproject-link wb-otherproject-wikiversity mw-list-item"><a href="https://de.wikiversity.org/wiki/Kurs:Webdesign/Javascript" hreflang="de"><span>Wikiversity</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q2005" title="Link zum verbundenen Objekt im Datenrepositorium [g]" accesskey="g"><span>Wikidata-Datenobjekt</span></a></li> </ul> </div> </nav> <nav id="p-lang" class="mw-portlet mw-portlet-lang vector-menu-portal portal vector-menu" aria-labelledby="p-lang-label" > <h3 id="p-lang-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">In anderen Sprachen</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-af mw-list-item"><a href="https://af.wikipedia.org/wiki/JavaScript" title="JavaScript – Afrikaans" lang="af" hreflang="af" data-title="JavaScript" data-language-autonym="Afrikaans" data-language-local-name="Afrikaans" class="interlanguage-link-target"><span>Afrikaans</span></a></li><li class="interlanguage-link interwiki-an mw-list-item"><a href="https://an.wikipedia.org/wiki/JavaScript" title="JavaScript – Aragonesisch" lang="an" hreflang="an" data-title="JavaScript" data-language-autonym="Aragonés" data-language-local-name="Aragonesisch" class="interlanguage-link-target"><span>Aragonés</span></a></li><li class="interlanguage-link interwiki-ang mw-list-item"><a href="https://ang.wikipedia.org/wiki/JavaScript" title="JavaScript – Altenglisch" lang="ang" hreflang="ang" data-title="JavaScript" data-language-autonym="Ænglisc" data-language-local-name="Altenglisch" class="interlanguage-link-target"><span>Ænglisc</span></a></li><li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%AC%D8%A7%D9%81%D8%A7_%D8%B3%D9%83%D8%B1%D9%8A%D8%A8%D8%AA" title="جافا سكريبت – Arabisch" lang="ar" hreflang="ar" data-title="جافا سكريبت" data-language-autonym="العربية" data-language-local-name="Arabisch" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-arz mw-list-item"><a href="https://arz.wikipedia.org/wiki/%D8%AC%D8%A7%D9%81%D8%A7_%D8%B3%D9%83%D8%B1%D9%8A%D8%A8%D8%AA" title="جافا سكريبت – Ägyptisches Arabisch" lang="arz" hreflang="arz" data-title="جافا سكريبت" data-language-autonym="مصرى" data-language-local-name="Ägyptisches Arabisch" class="interlanguage-link-target"><span>مصرى</span></a></li><li class="interlanguage-link interwiki-ast mw-list-item"><a href="https://ast.wikipedia.org/wiki/JavaScript" title="JavaScript – Asturisch" lang="ast" hreflang="ast" data-title="JavaScript" data-language-autonym="Asturianu" data-language-local-name="Asturisch" class="interlanguage-link-target"><span>Asturianu</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/JavaScript" title="JavaScript – Aserbaidschanisch" lang="az" hreflang="az" data-title="JavaScript" data-language-autonym="Azərbaycanca" data-language-local-name="Aserbaidschanisch" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-azb mw-list-item"><a href="https://azb.wikipedia.org/wiki/%D8%AC%D8%A7%D9%88%D8%A7%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA" title="جاوااسکریپت – Südaserbaidschanisch" lang="azb" hreflang="azb" data-title="جاوااسکریپت" data-language-autonym="تۆرکجه" data-language-local-name="Südaserbaidschanisch" class="interlanguage-link-target"><span>تۆرکجه</span></a></li><li class="interlanguage-link interwiki-bat-smg mw-list-item"><a href="https://bat-smg.wikipedia.org/wiki/JavaScript" title="JavaScript – Samogitisch" lang="sgs" hreflang="sgs" data-title="JavaScript" data-language-autonym="Žemaitėška" data-language-local-name="Samogitisch" class="interlanguage-link-target"><span>Žemaitėška</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/JavaScript" title="JavaScript – Belarussisch" lang="be" hreflang="be" data-title="JavaScript" data-language-autonym="Беларуская" data-language-local-name="Belarussisch" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-be-x-old mw-list-item"><a href="https://be-tarask.wikipedia.org/wiki/JavaScript" title="JavaScript – Weißrussisch (Taraschkewiza)" lang="be-tarask" hreflang="be-tarask" data-title="JavaScript" data-language-autonym="Беларуская (тарашкевіца)" data-language-local-name="Weißrussisch (Taraschkewiza)" class="interlanguage-link-target"><span>Беларуская (тарашкевіца)</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/JavaScript" title="JavaScript – Bulgarisch" lang="bg" hreflang="bg" data-title="JavaScript" data-language-autonym="Български" data-language-local-name="Bulgarisch" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-blk mw-list-item"><a href="https://blk.wikipedia.org/wiki/JavaScript" title="JavaScript – Pa&#039;O" lang="blk" hreflang="blk" data-title="JavaScript" data-language-autonym="ပအိုဝ်ႏဘာႏသာႏ" data-language-local-name="Pa&#039;O" class="interlanguage-link-target"><span>ပအိုဝ်ႏဘာႏသာႏ</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%9C%E0%A6%BE%E0%A6%AD%E0%A6%BE%E0%A6%B8%E0%A7%8D%E0%A6%95%E0%A7%8D%E0%A6%B0%E0%A6%BF%E0%A6%AA%E0%A7%8D%E0%A6%9F" title="জাভাস্ক্রিপ্ট – Bengalisch" lang="bn" hreflang="bn" data-title="জাভাস্ক্রিপ্ট" data-language-autonym="বাংলা" data-language-local-name="Bengalisch" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-br mw-list-item"><a href="https://br.wikipedia.org/wiki/Javascript" title="Javascript – Bretonisch" lang="br" hreflang="br" data-title="Javascript" data-language-autonym="Brezhoneg" data-language-local-name="Bretonisch" class="interlanguage-link-target"><span>Brezhoneg</span></a></li><li class="interlanguage-link interwiki-bug mw-list-item"><a href="https://bug.wikipedia.org/wiki/JavaScript" title="JavaScript – Buginesisch" lang="bug" hreflang="bug" data-title="JavaScript" data-language-autonym="Basa Ugi" data-language-local-name="Buginesisch" class="interlanguage-link-target"><span>Basa Ugi</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/JavaScript" title="JavaScript – Katalanisch" lang="ca" hreflang="ca" data-title="JavaScript" data-language-autonym="Català" data-language-local-name="Katalanisch" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cdo mw-list-item"><a href="https://cdo.wikipedia.org/wiki/JavaScript" title="JavaScript – Min Dong" lang="cdo" hreflang="cdo" data-title="JavaScript" data-language-autonym="閩東語 / Mìng-dĕ̤ng-ngṳ̄" data-language-local-name="Min Dong" class="interlanguage-link-target"><span>閩東語 / Mìng-dĕ̤ng-ngṳ̄</span></a></li><li class="interlanguage-link interwiki-ckb mw-list-item"><a href="https://ckb.wikipedia.org/wiki/%D8%AC%D8%A7%DA%A4%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA" title="جاڤاسکریپت – Zentralkurdisch" lang="ckb" hreflang="ckb" data-title="جاڤاسکریپت" data-language-autonym="کوردی" data-language-local-name="Zentralkurdisch" class="interlanguage-link-target"><span>کوردی</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/JavaScript" title="JavaScript – Tschechisch" lang="cs" hreflang="cs" data-title="JavaScript" data-language-autonym="Čeština" data-language-local-name="Tschechisch" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-cv mw-list-item"><a href="https://cv.wikipedia.org/wiki/JavaScript" title="JavaScript – Tschuwaschisch" lang="cv" hreflang="cv" data-title="JavaScript" data-language-autonym="Чӑвашла" data-language-local-name="Tschuwaschisch" class="interlanguage-link-target"><span>Чӑвашла</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/JavaScript" title="JavaScript – Dänisch" lang="da" hreflang="da" data-title="JavaScript" data-language-autonym="Dansk" data-language-local-name="Dänisch" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/JavaScript" title="JavaScript – Griechisch" lang="el" hreflang="el" data-title="JavaScript" data-language-autonym="Ελληνικά" data-language-local-name="Griechisch" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/JavaScript" title="JavaScript – Englisch" lang="en" hreflang="en" data-title="JavaScript" data-language-autonym="English" data-language-local-name="Englisch" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/JavaScript" title="JavaScript – Esperanto" lang="eo" hreflang="eo" data-title="JavaScript" data-language-autonym="Esperanto" data-language-local-name="Esperanto" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/JavaScript" title="JavaScript – Spanisch" lang="es" hreflang="es" data-title="JavaScript" data-language-autonym="Español" data-language-local-name="Spanisch" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/JavaScript" title="JavaScript – Estnisch" lang="et" hreflang="et" data-title="JavaScript" data-language-autonym="Eesti" data-language-local-name="Estnisch" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/JavaScript" title="JavaScript – Baskisch" lang="eu" hreflang="eu" data-title="JavaScript" data-language-autonym="Euskara" data-language-local-name="Baskisch" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%AC%D8%A7%D9%88%D8%A7%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA" title="جاوااسکریپت – Persisch" lang="fa" hreflang="fa" data-title="جاوااسکریپت" data-language-autonym="فارسی" data-language-local-name="Persisch" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/JavaScript" title="JavaScript – Finnisch" lang="fi" hreflang="fi" data-title="JavaScript" data-language-autonym="Suomi" data-language-local-name="Finnisch" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/JavaScript" title="JavaScript – Französisch" lang="fr" hreflang="fr" data-title="JavaScript" data-language-autonym="Français" data-language-local-name="Französisch" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-frr mw-list-item"><a href="https://frr.wikipedia.org/wiki/JavaScript" title="JavaScript – Nordfriesisch" lang="frr" hreflang="frr" data-title="JavaScript" data-language-autonym="Nordfriisk" data-language-local-name="Nordfriesisch" class="interlanguage-link-target"><span>Nordfriisk</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/JavaScript" title="JavaScript – Galicisch" lang="gl" hreflang="gl" data-title="JavaScript" data-language-autonym="Galego" data-language-local-name="Galicisch" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-ha mw-list-item"><a href="https://ha.wikipedia.org/wiki/JavaScript" title="JavaScript – Haussa" lang="ha" hreflang="ha" data-title="JavaScript" data-language-autonym="Hausa" data-language-local-name="Haussa" class="interlanguage-link-target"><span>Hausa</span></a></li><li class="interlanguage-link interwiki-hak mw-list-item"><a href="https://hak.wikipedia.org/wiki/JavaScript" title="JavaScript – Hakka" lang="hak" hreflang="hak" data-title="JavaScript" data-language-autonym="客家語 / Hak-kâ-ngî" data-language-local-name="Hakka" class="interlanguage-link-target"><span>客家語 / Hak-kâ-ngî</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/JavaScript" title="JavaScript – Hebräisch" lang="he" hreflang="he" data-title="JavaScript" data-language-autonym="עברית" data-language-local-name="Hebräisch" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%9C%E0%A4%BE%E0%A4%B5%E0%A4%BE%E0%A4%B8%E0%A5%8D%E0%A4%95%E0%A5%8D%E0%A4%B0%E0%A4%BF%E0%A4%AA%E0%A5%8D%E0%A4%9F" title="जावास्क्रिप्ट – Hindi" lang="hi" hreflang="hi" data-title="जावास्क्रिप्ट" data-language-autonym="हिन्दी" data-language-local-name="Hindi" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/JavaScript" title="JavaScript – Kroatisch" lang="hr" hreflang="hr" data-title="JavaScript" data-language-autonym="Hrvatski" data-language-local-name="Kroatisch" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/JavaScript" title="JavaScript – Ungarisch" lang="hu" hreflang="hu" data-title="JavaScript" data-language-autonym="Magyar" data-language-local-name="Ungarisch" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/%D5%8B%D5%A1%D5%BE%D5%A1%D5%8D%D5%AF%D6%80%D5%AB%D5%BA%D5%BF" title="ՋավաՍկրիպտ – Armenisch" lang="hy" hreflang="hy" data-title="ՋավաՍկրիպտ" data-language-autonym="Հայերեն" data-language-local-name="Armenisch" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-ia mw-list-item"><a href="https://ia.wikipedia.org/wiki/JavaScript" title="JavaScript – Interlingua" lang="ia" hreflang="ia" data-title="JavaScript" data-language-autonym="Interlingua" data-language-local-name="Interlingua" class="interlanguage-link-target"><span>Interlingua</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/JavaScript" title="JavaScript – Indonesisch" lang="id" hreflang="id" data-title="JavaScript" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesisch" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-io mw-list-item"><a href="https://io.wikipedia.org/wiki/JavaScript" title="JavaScript – Ido" lang="io" hreflang="io" data-title="JavaScript" data-language-autonym="Ido" data-language-local-name="Ido" class="interlanguage-link-target"><span>Ido</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/JavaScript" title="JavaScript – Isländisch" lang="is" hreflang="is" data-title="JavaScript" data-language-autonym="Íslenska" data-language-local-name="Isländisch" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/JavaScript" title="JavaScript – Italienisch" lang="it" hreflang="it" data-title="JavaScript" data-language-autonym="Italiano" data-language-local-name="Italienisch" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/JavaScript" title="JavaScript – Japanisch" lang="ja" hreflang="ja" data-title="JavaScript" data-language-autonym="日本語" data-language-local-name="Japanisch" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-jv mw-list-item"><a href="https://jv.wikipedia.org/wiki/JavaScript" title="JavaScript – Javanisch" lang="jv" hreflang="jv" data-title="JavaScript" data-language-autonym="Jawa" data-language-local-name="Javanisch" class="interlanguage-link-target"><span>Jawa</span></a></li><li class="interlanguage-link interwiki-ka mw-list-item"><a href="https://ka.wikipedia.org/wiki/JavaScript" title="JavaScript – Georgisch" lang="ka" hreflang="ka" data-title="JavaScript" data-language-autonym="ქართული" data-language-local-name="Georgisch" class="interlanguage-link-target"><span>ქართული</span></a></li><li class="interlanguage-link interwiki-kaa mw-list-item"><a href="https://kaa.wikipedia.org/wiki/JavaScript" title="JavaScript – Karakalpakisch" lang="kaa" hreflang="kaa" data-title="JavaScript" data-language-autonym="Qaraqalpaqsha" data-language-local-name="Karakalpakisch" class="interlanguage-link-target"><span>Qaraqalpaqsha</span></a></li><li class="interlanguage-link interwiki-kab mw-list-item"><a href="https://kab.wikipedia.org/wiki/JavaScript" title="JavaScript – Kabylisch" lang="kab" hreflang="kab" data-title="JavaScript" data-language-autonym="Taqbaylit" data-language-local-name="Kabylisch" class="interlanguage-link-target"><span>Taqbaylit</span></a></li><li class="interlanguage-link interwiki-kk mw-list-item"><a href="https://kk.wikipedia.org/wiki/JavaScript" title="JavaScript – Kasachisch" lang="kk" hreflang="kk" data-title="JavaScript" data-language-autonym="Қазақша" data-language-local-name="Kasachisch" class="interlanguage-link-target"><span>Қазақша</span></a></li><li class="interlanguage-link interwiki-km mw-list-item"><a href="https://km.wikipedia.org/wiki/JavaScript" title="JavaScript – Khmer" lang="km" hreflang="km" data-title="JavaScript" data-language-autonym="ភាសាខ្មែរ" data-language-local-name="Khmer" class="interlanguage-link-target"><span>ភាសាខ្មែរ</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8" title="자바스크립트 – Koreanisch" lang="ko" hreflang="ko" data-title="자바스크립트" data-language-autonym="한국어" data-language-local-name="Koreanisch" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-ku mw-list-item"><a href="https://ku.wikipedia.org/wiki/JavaScript" title="JavaScript – Kurdisch" lang="ku" hreflang="ku" data-title="JavaScript" data-language-autonym="Kurdî" data-language-local-name="Kurdisch" class="interlanguage-link-target"><span>Kurdî</span></a></li><li class="interlanguage-link interwiki-ky mw-list-item"><a href="https://ky.wikipedia.org/wiki/JavaScript" title="JavaScript – Kirgisisch" lang="ky" hreflang="ky" data-title="JavaScript" data-language-autonym="Кыргызча" data-language-local-name="Kirgisisch" class="interlanguage-link-target"><span>Кыргызча</span></a></li><li class="interlanguage-link interwiki-la mw-list-item"><a href="https://la.wikipedia.org/wiki/JavaScript" title="JavaScript – Latein" lang="la" hreflang="la" data-title="JavaScript" data-language-autonym="Latina" data-language-local-name="Latein" class="interlanguage-link-target"><span>Latina</span></a></li><li class="interlanguage-link interwiki-lfn mw-list-item"><a href="https://lfn.wikipedia.org/wiki/JavaScript" title="JavaScript – Lingua Franca Nova" lang="lfn" hreflang="lfn" data-title="JavaScript" data-language-autonym="Lingua Franca Nova" data-language-local-name="Lingua Franca Nova" class="interlanguage-link-target"><span>Lingua Franca Nova</span></a></li><li class="interlanguage-link interwiki-lmo mw-list-item"><a href="https://lmo.wikipedia.org/wiki/JavaScript" title="JavaScript – Lombardisch" lang="lmo" hreflang="lmo" data-title="JavaScript" data-language-autonym="Lombard" data-language-local-name="Lombardisch" class="interlanguage-link-target"><span>Lombard</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/JavaScript" title="JavaScript – Litauisch" lang="lt" hreflang="lt" data-title="JavaScript" data-language-autonym="Lietuvių" data-language-local-name="Litauisch" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/JavaScript" title="JavaScript – Lettisch" lang="lv" hreflang="lv" data-title="JavaScript" data-language-autonym="Latviešu" data-language-local-name="Lettisch" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-mk mw-list-item"><a href="https://mk.wikipedia.org/wiki/JavaScript" title="JavaScript – Mazedonisch" lang="mk" hreflang="mk" data-title="JavaScript" data-language-autonym="Македонски" data-language-local-name="Mazedonisch" class="interlanguage-link-target"><span>Македонски</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%9C%E0%B4%BE%E0%B4%B5%E0%B4%BE%E0%B4%B8%E0%B5%8D%E0%B4%95%E0%B5%8D%E0%B4%B0%E0%B4%BF%E0%B4%AA%E0%B5%8D%E0%B4%B1%E0%B5%8D%E0%B4%B1%E0%B5%8D" title="ജാവാസ്ക്രിപ്റ്റ് – Malayalam" lang="ml" hreflang="ml" data-title="ജാവാസ്ക്രിപ്റ്റ്" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-mn mw-list-item"><a href="https://mn.wikipedia.org/wiki/JavaScript" title="JavaScript – Mongolisch" lang="mn" hreflang="mn" data-title="JavaScript" data-language-autonym="Монгол" data-language-local-name="Mongolisch" class="interlanguage-link-target"><span>Монгол</span></a></li><li class="interlanguage-link interwiki-mr mw-list-item"><a href="https://mr.wikipedia.org/wiki/%E0%A4%9C%E0%A4%BE%E0%A4%B5%E0%A4%BE%E0%A4%B8%E0%A5%8D%E0%A4%95%E0%A5%8D%E0%A4%B0%E0%A4%BF%E0%A4%AA%E0%A5%8D%E0%A4%9F" title="जावास्क्रिप्ट – Marathi" lang="mr" hreflang="mr" data-title="जावास्क्रिप्ट" data-language-autonym="मराठी" data-language-local-name="Marathi" class="interlanguage-link-target"><span>मराठी</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/JavaScript" title="JavaScript – Malaiisch" lang="ms" hreflang="ms" data-title="JavaScript" data-language-autonym="Bahasa Melayu" data-language-local-name="Malaiisch" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-my mw-list-item"><a href="https://my.wikipedia.org/wiki/JavaScript" title="JavaScript – Birmanisch" lang="my" hreflang="my" data-title="JavaScript" data-language-autonym="မြန်မာဘာသာ" data-language-local-name="Birmanisch" class="interlanguage-link-target"><span>မြန်မာဘာသာ</span></a></li><li class="interlanguage-link interwiki-mzn mw-list-item"><a href="https://mzn.wikipedia.org/wiki/%D8%AC%D8%A7%D9%88%D8%A7%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA" title="جاوااسکریپت – Masanderanisch" lang="mzn" hreflang="mzn" data-title="جاوااسکریپت" data-language-autonym="مازِرونی" data-language-local-name="Masanderanisch" class="interlanguage-link-target"><span>مازِرونی</span></a></li><li class="interlanguage-link interwiki-ne mw-list-item"><a href="https://ne.wikipedia.org/wiki/%E0%A4%9C%E0%A4%BE%E0%A4%AD%E0%A4%BE%E0%A4%B8%E0%A5%8D%E0%A4%95%E0%A5%8D%E0%A4%B0%E0%A4%BF%E0%A4%AA%E0%A5%8D%E0%A4%9F" title="जाभास्क्रिप्ट – Nepalesisch" lang="ne" hreflang="ne" data-title="जाभास्क्रिप्ट" data-language-autonym="नेपाली" data-language-local-name="Nepalesisch" class="interlanguage-link-target"><span>नेपाली</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/JavaScript" title="JavaScript – Niederländisch" lang="nl" hreflang="nl" data-title="JavaScript" data-language-autonym="Nederlands" data-language-local-name="Niederländisch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/JavaScript" title="JavaScript – Norwegisch (Bokmål)" lang="nb" hreflang="nb" data-title="JavaScript" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegisch (Bokmål)" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-or mw-list-item"><a href="https://or.wikipedia.org/wiki/%E0%AC%9C%E0%AC%BE%E0%AC%AD%E0%AC%BE%E0%AC%B8%E0%AD%8D%E0%AC%95%E0%AD%8D%E0%AC%B0%E0%AC%BF%E0%AC%AA%E0%AD%8D%E0%AC%9F" title="ଜାଭାସ୍କ୍ରିପ୍ଟ – Oriya" lang="or" hreflang="or" data-title="ଜାଭାସ୍କ୍ରିପ୍ଟ" data-language-autonym="ଓଡ଼ିଆ" data-language-local-name="Oriya" class="interlanguage-link-target"><span>ଓଡ଼ିଆ</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/JavaScript" title="JavaScript – Polnisch" lang="pl" hreflang="pl" data-title="JavaScript" data-language-autonym="Polski" data-language-local-name="Polnisch" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pnb mw-list-item"><a href="https://pnb.wikipedia.org/wiki/%D8%AC%D8%A7%D9%88%D8%A7_%D8%B3%DA%A9%D8%B1%D9%BE%D9%B9" title="جاوا سکرپٹ – Westliches Panjabi" lang="pnb" hreflang="pnb" data-title="جاوا سکرپٹ" data-language-autonym="پنجابی" data-language-local-name="Westliches Panjabi" class="interlanguage-link-target"><span>پنجابی</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/JavaScript" title="JavaScript – Portugiesisch" lang="pt" hreflang="pt" data-title="JavaScript" data-language-autonym="Português" data-language-local-name="Portugiesisch" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-pwn mw-list-item"><a href="https://pwn.wikipedia.org/wiki/JavaScript" title="JavaScript – Paiwan" lang="pwn" hreflang="pwn" data-title="JavaScript" data-language-autonym="Pinayuanan" data-language-local-name="Paiwan" class="interlanguage-link-target"><span>Pinayuanan</span></a></li><li class="interlanguage-link interwiki-qu mw-list-item"><a href="https://qu.wikipedia.org/wiki/JavaScript" title="JavaScript – Quechua" lang="qu" hreflang="qu" data-title="JavaScript" data-language-autonym="Runa Simi" data-language-local-name="Quechua" class="interlanguage-link-target"><span>Runa Simi</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/JavaScript" title="JavaScript – Rumänisch" lang="ro" hreflang="ro" data-title="JavaScript" data-language-autonym="Română" data-language-local-name="Rumänisch" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/JavaScript" title="JavaScript – Russisch" lang="ru" hreflang="ru" data-title="JavaScript" data-language-autonym="Русский" data-language-local-name="Russisch" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sah mw-list-item"><a href="https://sah.wikipedia.org/wiki/JavaScript" title="JavaScript – Jakutisch" lang="sah" hreflang="sah" data-title="JavaScript" data-language-autonym="Саха тыла" data-language-local-name="Jakutisch" class="interlanguage-link-target"><span>Саха тыла</span></a></li><li class="interlanguage-link interwiki-sco mw-list-item"><a href="https://sco.wikipedia.org/wiki/JavaScript" title="JavaScript – Schottisch" lang="sco" hreflang="sco" data-title="JavaScript" data-language-autonym="Scots" data-language-local-name="Schottisch" class="interlanguage-link-target"><span>Scots</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/JavaScript" title="JavaScript – Serbokroatisch" lang="sh" hreflang="sh" data-title="JavaScript" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="Serbokroatisch" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-si mw-list-item"><a href="https://si.wikipedia.org/wiki/%E0%B6%A2%E0%B7%8F%E0%B7%80%E0%B7%8F_%E0%B6%8B%E0%B6%B4%E0%B6%AF%E0%B7%9A%E0%B7%81%E0%B7%8F%E0%B7%80%E0%B6%BD%E0%B7%92%E0%B6%BA" title="ජාවා උපදේශාවලිය – Singhalesisch" lang="si" hreflang="si" data-title="ජාවා උපදේශාවලිය" data-language-autonym="සිංහල" data-language-local-name="Singhalesisch" class="interlanguage-link-target"><span>සිංහල</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/JavaScript" title="JavaScript – einfaches Englisch" lang="en-simple" hreflang="en-simple" data-title="JavaScript" data-language-autonym="Simple English" data-language-local-name="einfaches Englisch" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/JavaScript" title="JavaScript – Slowakisch" lang="sk" hreflang="sk" data-title="JavaScript" data-language-autonym="Slovenčina" data-language-local-name="Slowakisch" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/JavaScript" title="JavaScript – Slowenisch" lang="sl" hreflang="sl" data-title="JavaScript" data-language-autonym="Slovenščina" data-language-local-name="Slowenisch" class="interlanguage-link-target"><span>Slovenščina</span></a></li><li class="interlanguage-link interwiki-so mw-list-item"><a href="https://so.wikipedia.org/wiki/JavaScript" title="JavaScript – Somali" lang="so" hreflang="so" data-title="JavaScript" data-language-autonym="Soomaaliga" data-language-local-name="Somali" class="interlanguage-link-target"><span>Soomaaliga</span></a></li><li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/JavaScript" title="JavaScript – Albanisch" lang="sq" hreflang="sq" data-title="JavaScript" data-language-autonym="Shqip" data-language-local-name="Albanisch" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/JavaScript" title="JavaScript – Serbisch" lang="sr" hreflang="sr" data-title="JavaScript" data-language-autonym="Српски / srpski" data-language-local-name="Serbisch" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-su mw-list-item"><a href="https://su.wikipedia.org/wiki/JavaScript" title="JavaScript – Sundanesisch" lang="su" hreflang="su" data-title="JavaScript" data-language-autonym="Sunda" data-language-local-name="Sundanesisch" class="interlanguage-link-target"><span>Sunda</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Javascript" title="Javascript – Schwedisch" lang="sv" hreflang="sv" data-title="Javascript" data-language-autonym="Svenska" data-language-local-name="Schwedisch" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-sw mw-list-item"><a href="https://sw.wikipedia.org/wiki/JavaScript" title="JavaScript – Suaheli" lang="sw" hreflang="sw" data-title="JavaScript" data-language-autonym="Kiswahili" data-language-local-name="Suaheli" class="interlanguage-link-target"><span>Kiswahili</span></a></li><li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://ta.wikipedia.org/wiki/%E0%AE%AF%E0%AE%BE%E0%AE%B5%E0%AE%BE%E0%AE%95%E0%AF%8D%E0%AE%95%E0%AE%BF%E0%AE%B1%E0%AE%BF%E0%AE%9F%E0%AF%8D%E0%AE%9F%E0%AF%81" title="யாவாக்கிறிட்டு – Tamil" lang="ta" hreflang="ta" data-title="யாவாக்கிறிட்டு" data-language-autonym="தமிழ்" data-language-local-name="Tamil" class="interlanguage-link-target"><span>தமிழ்</span></a></li><li class="interlanguage-link interwiki-te mw-list-item"><a href="https://te.wikipedia.org/wiki/%E0%B0%9C%E0%B0%BE%E0%B0%B5%E0%B0%BE%E0%B0%B8%E0%B1%8D%E0%B0%95%E0%B1%8D%E0%B0%B0%E0%B0%BF%E0%B0%AA%E0%B1%8D%E0%B0%9F%E0%B1%81" title="జావాస్క్రిప్టు – Telugu" lang="te" hreflang="te" data-title="జావాస్క్రిప్టు" data-language-autonym="తెలుగు" data-language-local-name="Telugu" class="interlanguage-link-target"><span>తెలుగు</span></a></li><li class="interlanguage-link interwiki-tet mw-list-item"><a href="https://tet.wikipedia.org/wiki/JavaScript" title="JavaScript – Tetum" lang="tet" hreflang="tet" data-title="JavaScript" data-language-autonym="Tetun" data-language-local-name="Tetum" class="interlanguage-link-target"><span>Tetun</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%88%E0%B8%B2%E0%B8%A7%E0%B8%B2%E0%B8%AA%E0%B8%84%E0%B8%A3%E0%B8%B4%E0%B8%9B%E0%B8%95%E0%B9%8C" title="จาวาสคริปต์ – Thailändisch" lang="th" hreflang="th" data-title="จาวาสคริปต์" data-language-autonym="ไทย" data-language-local-name="Thailändisch" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tk mw-list-item"><a href="https://tk.wikipedia.org/wiki/JavaScript" title="JavaScript – Turkmenisch" lang="tk" hreflang="tk" data-title="JavaScript" data-language-autonym="Türkmençe" data-language-local-name="Turkmenisch" class="interlanguage-link-target"><span>Türkmençe</span></a></li><li class="interlanguage-link interwiki-tl mw-list-item"><a href="https://tl.wikipedia.org/wiki/JavaScript" title="JavaScript – Tagalog" lang="tl" hreflang="tl" data-title="JavaScript" data-language-autonym="Tagalog" data-language-local-name="Tagalog" class="interlanguage-link-target"><span>Tagalog</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/JavaScript" title="JavaScript – Türkisch" lang="tr" hreflang="tr" data-title="JavaScript" data-language-autonym="Türkçe" data-language-local-name="Türkisch" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-tt mw-list-item"><a href="https://tt.wikipedia.org/wiki/JavaScript" title="JavaScript – Tatarisch" lang="tt" hreflang="tt" data-title="JavaScript" data-language-autonym="Татарча / tatarça" data-language-local-name="Tatarisch" class="interlanguage-link-target"><span>Татарча / tatarça</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/JavaScript" title="JavaScript – Ukrainisch" lang="uk" hreflang="uk" data-title="JavaScript" data-language-autonym="Українська" data-language-local-name="Ukrainisch" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-ur mw-list-item"><a href="https://ur.wikipedia.org/wiki/%D8%AC%D8%A7%D9%88%D8%A7_%D8%A7%D8%B3%DA%A9%D8%B1%D9%BE%D9%B9" title="جاوا اسکرپٹ – Urdu" lang="ur" hreflang="ur" data-title="جاوا اسکرپٹ" data-language-autonym="اردو" data-language-local-name="Urdu" class="interlanguage-link-target"><span>اردو</span></a></li><li class="interlanguage-link interwiki-uz mw-list-item"><a href="https://uz.wikipedia.org/wiki/JavaScript" title="JavaScript – Usbekisch" lang="uz" hreflang="uz" data-title="JavaScript" data-language-autonym="Oʻzbekcha / ўзбекча" data-language-local-name="Usbekisch" class="interlanguage-link-target"><span>Oʻzbekcha / ўзбекча</span></a></li><li class="interlanguage-link interwiki-vec mw-list-item"><a href="https://vec.wikipedia.org/wiki/JavaScript" title="JavaScript – Venetisch" lang="vec" hreflang="vec" data-title="JavaScript" data-language-autonym="Vèneto" data-language-local-name="Venetisch" class="interlanguage-link-target"><span>Vèneto</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/JavaScript" title="JavaScript – Vietnamesisch" lang="vi" hreflang="vi" data-title="JavaScript" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamesisch" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-wuu mw-list-item"><a href="https://wuu.wikipedia.org/wiki/JavaScript" title="JavaScript – Wu" lang="wuu" hreflang="wuu" data-title="JavaScript" data-language-autonym="吴语" data-language-local-name="Wu" class="interlanguage-link-target"><span>吴语</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/JavaScript" title="JavaScript – Chinesisch" lang="zh" hreflang="zh" data-title="JavaScript" data-language-autonym="中文" data-language-local-name="Chinesisch" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-zh-classical mw-list-item"><a href="https://zh-classical.wikipedia.org/wiki/%E7%88%AA%E5%93%87%E6%89%8B%E7%A8%BF%E8%AA%9E" title="爪哇手稿語 – Klassisches Chinesisch" lang="lzh" hreflang="lzh" data-title="爪哇手稿語" data-language-autonym="文言" data-language-local-name="Klassisches Chinesisch" class="interlanguage-link-target"><span>文言</span></a></li><li class="interlanguage-link interwiki-zh-min-nan mw-list-item"><a href="https://zh-min-nan.wikipedia.org/wiki/JavaScript" title="JavaScript – Min Nan" lang="nan" hreflang="nan" data-title="JavaScript" data-language-autonym="閩南語 / Bân-lâm-gú" data-language-local-name="Min Nan" class="interlanguage-link-target"><span>閩南語 / Bân-lâm-gú</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/JavaScript" title="JavaScript – Kantonesisch" lang="yue" hreflang="yue" data-title="JavaScript" data-language-autonym="粵語" data-language-local-name="Kantonesisch" class="interlanguage-link-target"><span>粵語</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q2005#sitelinks-wikipedia" title="Links auf Artikel in anderen Sprachen bearbeiten" class="wbc-editpage">Links bearbeiten</a></span></div> </div> </nav> </div> </div> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> Diese Seite wurde zuletzt am 26. September 2024 um 17:57 Uhr bearbeitet.</li> <li id="footer-info-copyright"><div id="footer-info-copyright-stats" class="noprint"><a rel="nofollow" class="external text" href="https://pageviews.wmcloud.org/?pages=JavaScript&amp;project=de.wikipedia.org">Abrufstatistik</a>&#160;· <a rel="nofollow" class="external text" href="https://xtools.wmcloud.org/authorship/de.wikipedia.org/JavaScript?uselang=de">Autoren</a> </div><div id="footer-info-copyright-separator"><br /></div><div id="footer-info-copyright-info"> <p>Der Text ist unter der Lizenz <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">„Creative-Commons Namensnennung – Weitergabe unter gleichen Bedingungen“</a> verfügbar; Informationen zu den Urhebern und zum Lizenzstatus eingebundener Mediendateien (etwa Bilder oder Videos) können im Regelfall durch Anklicken dieser abgerufen werden. Möglicherweise unterliegen die Inhalte jeweils zusätzlichen Bedingungen. Durch die Nutzung dieser Website erklären Sie sich mit den <span class="plainlinks"><a class="external text" href="https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use/de">Nutzungsbedingungen</a> und der <a class="external text" href="https://foundation.wikimedia.org/wiki/Policy:Privacy_policy/de">Datenschutzrichtlinie</a></span> einverstanden.<br /> </p> Wikipedia® ist eine eingetragene Marke der Wikimedia Foundation Inc.</div></li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/de">Datenschutz</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:%C3%9Cber_Wikipedia">Über Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:Impressum">Impressum</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Verhaltenskodex</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Entwickler</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/de.wikipedia.org">Statistiken</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Stellungnahme zu Cookies</a></li> <li id="footer-places-mobileview"><a href="//de.m.wikipedia.org/w/index.php?title=JavaScript&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile Ansicht</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> <script>(RLQ=window.RLQ||[]).push(function(){mw.log.warn("This page is using the deprecated ResourceLoader module \"codex-search-styles\".\n[1.43] Use a CodexModule with codexComponents to set your specific components used: https://www.mediawiki.org/wiki/Codex#Using_a_limited_subset_of_components");mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-kmvjg","wgBackendResponseTime":197,"wgPageParseReport":{"limitreport":{"cputime":"1.867","walltime":"2.015","ppvisitednodes":{"value":15789,"limit":1000000},"postexpandincludesize":{"value":139865,"limit":2097152},"templateargumentsize":{"value":45558,"limit":2097152},"expansiondepth":{"value":15,"limit":100},"expensivefunctioncount":{"value":40,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":110283,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 1782.031 1 -total"," 68.73% 1224.826 42 Vorlage:Internetquelle"," 8.60% 153.218 1 Vorlage:Infobox_Programmiersprache"," 6.29% 112.014 42 Vorlage:Str_len"," 5.28% 94.086 8 Vorlage:Literatur"," 5.17% 92.171 1 Vorlage:Cite_web"," 2.25% 40.102 3 Vorlage:Webarchiv"," 1.61% 28.662 1 Vorlage:Normdaten"," 1.57% 27.929 3 Vorlage:Referrer"," 1.41% 25.045 3 Vorlage:IconExternal"]},"scribunto":{"limitreport-timeusage":{"value":"0.991","limit":"10.000"},"limitreport-memusage":{"value":6385379,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-5dc468848-w96r5","timestamp":"20241122000044","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"JavaScript","url":"https:\/\/de.wikipedia.org\/wiki\/JavaScript","sameAs":"http:\/\/www.wikidata.org\/entity\/Q2005","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q2005","author":{"@type":"Organization","name":"Autoren der Wikimedia-Projekte"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2002-04-30T13:19:32Z","headline":"Skriptsprache"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10