ECMAScript: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
(24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Qualität
{{Qualität
|correctness        = 4
|correctness        = 2
|extent              = 3
|extent              = 2
|numberOfReferences  = 3
|numberOfReferences  = 3
|qualityOfReferences = 4
|qualityOfReferences = 4
|conformance        = 4
|conformance        = 4
|annotation1 = Im Artikel sind viele weiterführenden Verweise angegeben. Diese werden jeweils zu Beginn des Wintersemesters aktualisiert.  
|annotation1 = Im Artikel sind viele weiterführenden Verweise angegeben. Diese werden jeweils zu Beginn des Wintersemesters aktualisiert.  
|annotation2 = Derzeit sind viele Informationen veraltet. '''Dieser Artikel muss grundlegend überarbeitet werden.'''
}}
}}
==Definition==
==Definition==
Zeile 16: Zeile 17:
und verändern zu können (eine Ausnahme ist [[Lynx]], ein textbasierter Webbrowser für den Einsatz in reinen Text-Terminals ohne Maus). Es gibt darüber hinaus auch serverseitige JavaScript-Frameworks (z.B. [[Node.js]]).
und verändern zu können (eine Ausnahme ist [[Lynx]], ein textbasierter Webbrowser für den Einsatz in reinen Text-Terminals ohne Maus). Es gibt darüber hinaus auch serverseitige JavaScript-Frameworks (z.B. [[Node.js]]).


JavaScript wurde unter dem Namen ECMAScript standardisiert:
JavaScript wurde unter dem Namen ECMAScript von [http://www.ecma-international.org/ Ecma International] standardisiert:
* [http://www.2ality.com/2014/06/es6-schedule.html ECMAScript 6] (geplanter künftiger Standard)
* [http://www.ecma-international.org/ecma-262/8.0/ ECMAScript® 2017 (ECMAScript 8)] (wird zu Teilen [http://kangax.github.io/compat-table/es2016plus/ durch aktuelle Browser unterstützt])
* JavaScript 1.8.5 (HTML5): Standard [http://www.ecma-international.org/publications/standards/Ecma-262.htm ECMA-262, ECMAScript Language Specification Edition 5.1 (June 2011)]
* [http://www.ecma-international.org/ecma-262/7.0/ ECMAScript® 2016 (ECMAScript 7)] (wird zu großen Teilen [http://kangax.github.io/compat-table/es2016plus/ durch aktuelle Browser unterstützt])
* JavaScript 1.5.0: Standard [http://www.ecma-international.org/publications/standards/Ecma-327.htm ECMA-327, ECMAScript 3rd Edition Compact Profile (June 2001)]
* [http://www.ecma-international.org/ecma-262/6.0/ ECMAScript® 2015 (ECMAScript 6)] (wird zu großen Teilen [https://kangax.github.io/compat-table/es6/ durch aktuelle Browser unterstützt])
* JavaScript 1.8.x (HTML5): Standard [http://www.ecma-international.org/ecma-262/5.1/ ECMAScript Language Specification Edition 5.1 (June 2011)]
* JavaScript 1.5: Standard: ECMAScript 3rd Edition Compact Profile (June 2001)


==Siehe auch==
==Siehe auch==


===JavaScript-Dokumentation und Tutorials===
===JavaScript-Dokumentation und Tutorials===
* [http://wiki.ecmascript.org/ ECMAScrpit Wiki]
* [http://wiki.ecmascript.org/ ECMAScript-Wiki]
* [https://developer.mozilla.org/en/JavaScript/Reference Mozilla Developer Network] (sehr gute und aktuelle Dokumentation zu JavaScript)
* [https://developer.mozilla.org/en/JavaScript/Reference Mozilla Developer Network] (sehr gute und aktuelle Dokumentation zu JavaScript)
* [http://eloquentjavascript.net/ Eloquent JavaScript] – Für Anfänger.
* [http://eloquentjavascript.net/ Eloquent JavaScript] – Für Anfänger.
Zeile 36: Zeile 39:


* [https://github.com/airbnb/javascript Airbnb JavaScript Style Guide]
* [https://github.com/airbnb/javascript Airbnb JavaScript Style Guide]
* [[Multimedia-Programmierung: Konventionen|Programmierkonventionen]]
* [[Multimedia-Programmierung: Style Guide]]


===Frameworks für die JavaScript-Entwicklung===
===Frameworks für die JavaScript-Entwicklung===
Zeile 46: Zeile 49:
* [http://www.aptana.com/ Aptana Studio 3] – Apatana Studio kann sowohl als Standalone-Version (basierend auf Eclipse) als auch als Eclipse-Plugin [http://www.aptana.com/products/studio3/download heruntergeladen] werden.
* [http://www.aptana.com/ Aptana Studio 3] – Apatana Studio kann sowohl als Standalone-Version (basierend auf Eclipse) als auch als Eclipse-Plugin [http://www.aptana.com/products/studio3/download heruntergeladen] werden.
* [http://www.appcelerator.com/ Appcelerator Titanium] – Basiert ebenfalls auf Eclipse, dient zur Entwicklung von nativen iOS- und Adroid-Apps auf Basis von HTML5/CSS/JavaScript.
* [http://www.appcelerator.com/ Appcelerator Titanium] – Basiert ebenfalls auf Eclipse, dient zur Entwicklung von nativen iOS- und Adroid-Apps auf Basis von HTML5/CSS/JavaScript.
* [https://creative.adobe.com/products/animate Adobe Edge Animate] ist ein Werkzeug zur Erstellung von HTML5/CSS3/JavaSCript-Animationen, wobei die Zeilleisten-Konzepte an  [[Adobe Flash]] und [[Adobe After Effects]] erinnern.
* [https://www.adobe.com/de/products/edge-animate.html Adobe Edge Animate] ist ein Werkzeug zur Erstellung von HTML5/CSS3/JavaScript-Animationen, wobei die Zeilleisten-Konzepte an  [[Adobe Flash]] und [[Adobe After Effects]] erinnern.
* [https://docs.microsoft.com/de-de/visualstudio/ Visual Studio]


===EcmaScript 6===
===ECMAScript 6===


ECMAScript 6 wurde bereits weitestgehend fertiggestellt.  
ECMAScript 6 wurde bereits weitestgehend fertiggestellt.  


*[http://www.peterkroener.de/arikel/ecmascript-6/  Peter Körner: ECMAScript 6]
*[http://kangax.github.io/compat-table/es6/ ECMAScript-6-Kompatibilitäts-Tabelle]
*[http://kangax.github.io/compat-table/es6/ ECMAScript-6-Kompatibilitäts-Tabelle]


Zeile 63: Zeile 66:


====Generators====
====Generators====
*[http://www.peterkroener.de/ecmascript-6-generators/ Peter Körner: ECMAScript 6: Generators]
*[http://www.2ality.com/2013/06/iterators-generators.html Axel Rauschmayer: Iterators and generators in ECMAScript 6 ]
*[http://www.2ality.com/2013/06/iterators-generators.html Axel Rauschmayer: Iterators and generators in ECMAScript 6 ]
*[http://www.2ality.com/2014/08/formatting-generator-asterisk.html Axel Rauschmayer: How should I format the ECMAScript 6 generator asterisk? ]
*[http://www.2ality.com/2014/08/formatting-generator-asterisk.html Axel Rauschmayer: How should I format the ECMAScript 6 generator asterisk? ]


====Promises====
====Promises====
*[https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Promise MDB web doc: Promise]
*[http://www.html5rocks.com/en/tutorials/es6/promises/ html5rocks: JavaScript Promises]
*[http://www.html5rocks.com/en/tutorials/es6/promises/ html5rocks: JavaScript Promises]
*[http://www.peterkroener.de/ecmascript-6-promises/ Peter Körner: ECMAScript 6: Promises]
*[http://www.peterkroener.de/ecmascript-6-promises/ Peter Körner: ECMAScript 6: Promises]
Zeile 73: Zeile 76:
===Utilities===
===Utilities===
* [https://github.com/sergeche/eclipse-zencoding Zen-Coding mit Eclipse] – Ermöglicht es, Codesnippets zu generieren. Eine kleine Anleitung für Aptana: http://nooshu.com/aptana-on-steroids-using-zen-coding. Zen-Coding ist auch für andere Editoren und Entwicklungsumgebungen [http://code.google.com/p/zen-coding/downloads/list erhältlich] (wie beispielsweise für [[Notepad++]] oder [[Dreamweaver]]).
* [https://github.com/sergeche/eclipse-zencoding Zen-Coding mit Eclipse] – Ermöglicht es, Codesnippets zu generieren. Eine kleine Anleitung für Aptana: http://nooshu.com/aptana-on-steroids-using-zen-coding. Zen-Coding ist auch für andere Editoren und Entwicklungsumgebungen [http://code.google.com/p/zen-coding/downloads/list erhältlich] (wie beispielsweise für [[Notepad++]] oder [[Dreamweaver]]).
====Komprimierung und Reduktion der Anzahl der Dateien====
* [https://webpack.github.io/ WebPack]
* [http://yui.github.io/yuicompressor/ YUI Compressor]
* [https://www.npmjs.com/package/cssmin cssmin] und [https://github.com/mishoo/UglifyJS2 UglifyJS2] (mittels [https://gruntjs.com/ Grunt])


===Erstellung von App/Anwendungs-Dokumentationen===
===Erstellung von App/Anwendungs-Dokumentationen===
Zeile 88: Zeile 97:


* [[WebStorm]]
* [[WebStorm]]
* [[IntelliJ IDEA]]
* [[NetBeans]]  
* [[NetBeans]]  
* [[RubyMine]]
* [[RubyMine]]
Zeile 112: Zeile 120:
* [[WikipediaEN: List of rich internet application frameworks|List of rich internet application frameworks]] (Wikipedia EN)
* [[WikipediaEN: List of rich internet application frameworks|List of rich internet application frameworks]] (Wikipedia EN)
* [[WikipediaEN: Multiple phone web-based application framework|Multiple phone web-based application framework]] (Wikipedia EN)
* [[WikipediaEN: Multiple phone web-based application framework|Multiple phone web-based application framework]] (Wikipedia EN)
===Frameworks===
* [https://github.com/aurelia/ Aurelia]


=== JavaScript-Bibliotheken===
=== JavaScript-Bibliotheken===
Zeile 185: Zeile 196:
*http://www.animaclock.com/
*http://www.animaclock.com/
*http://joelb.me/scrollpath/
*http://joelb.me/scrollpath/
==== BigInt ====
<source lang="javascript">
5.10 + 10.20 === 15.30 → false
let a = BigInt(2), b= 256n;
console.log(a ** b);
</source>


[[Kategorie:JavaScript]]
[[Kategorie:JavaScript]]
[[Kategorie:Glossar]]
[[Kategorie:Glossar]]
[[en:JavaScript]]
[[en:JavaScript]]

Version vom 20. Juli 2019, 13:36 Uhr

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:

Korrektheit: 2
(teilweise überprüft)
Umfang: 2
(wichtige Fakten fehlen)
Quellenangaben: 3
(wichtige Quellen vorhanden)
Quellenarten: 4
(sehr gut)
Konformität: 4
(sehr gut)

Im Artikel sind viele weiterführenden Verweise angegeben. Diese werden jeweils zu Beginn des Wintersemesters aktualisiert.

Derzeit sind viele Informationen veraltet. Dieser Artikel muss grundlegend überarbeitet werden.

Definition

JavaScript ist eine dynamisch typisierte Skriptsprache, die objektorientierte, funktionale und auch das imperative Programmierung unterstützt.

Anmerkungen

JavaScript wird von den meisten Web-Browsern unterstützt, um HTML-Dokumente dynmisch erzeugen und verändern zu können (eine Ausnahme ist Lynx, ein textbasierter Webbrowser für den Einsatz in reinen Text-Terminals ohne Maus). Es gibt darüber hinaus auch serverseitige JavaScript-Frameworks (z.B. Node.js).

JavaScript wurde unter dem Namen ECMAScript von Ecma International standardisiert:

Siehe auch

JavaScript-Dokumentation und Tutorials

Style Guides

Frameworks für die JavaScript-Entwicklung

  • Eclipse mit JavaScript- und Web-Plugins (insbesondere Eclipse IDE for JavaScript Web Developers) – Ursprünglich eine Java-Entwicklungsumgebung, heute eine sehr weit verbreitete Universal-Entwicklungsumgebung.
  • WebStorm – Ein Ableger der Java-Entwicklungsumgebung IntelliJ IDEA von JetBrains. Für kommerzielle Projekte ist WebStorm kostenpflichtig.
  • Meteor (auch in Verbindung mit WebStorm)
  • Netbeans IDE – Eine weitere Java-Entwicklungsumgebung, die ebenfalls hervorragend zur Entwicklung von Web-Anwendungen geeignet ist.
  • Aptana Studio 3 – Apatana Studio kann sowohl als Standalone-Version (basierend auf Eclipse) als auch als Eclipse-Plugin heruntergeladen werden.
  • Appcelerator Titanium – Basiert ebenfalls auf Eclipse, dient zur Entwicklung von nativen iOS- und Adroid-Apps auf Basis von HTML5/CSS/JavaScript.
  • Adobe Edge Animate ist ein Werkzeug zur Erstellung von HTML5/CSS3/JavaScript-Animationen, wobei die Zeilleisten-Konzepte an Adobe Flash und Adobe After Effects erinnern.
  • Visual Studio

ECMAScript 6

ECMAScript 6 wurde bereits weitestgehend fertiggestellt.

Tools

Es gibt Tools, um ECMAScript 6 in ECMAScript 5 zu übersetzen und jetzt schon von den Erweiterungen zu profitieren:

Generators

Promises

Utilities

Komprimierung und Reduktion der Anzahl der Dateien

Erstellung von App/Anwendungs-Dokumentationen

Viele Frameworks und Editoren unterstützen JSDoc von Haus aus:

JavaScript-Cross-Compiler

Cross-Compiler erzeugen Compilate für bestimmte Zielumgebungen, die sich von der Umgebung, auf dem der Cross-Compiler läuft, unterscheiden. Ein Spezialfall sind Cross-Compiler, die Quellcode einer Programmiersprache in einen Quellcode einer anderen Programmiersprache übersetzen. Es gibt mehrere Cross-Compiler, die als Zielsprache (unter anderem) JavaScript unterstützen.

Übersichten im Web

Frameworks

JavaScript-Bibliotheken

MVC

Mobile

Android-Entwicklung

Canvas

Game Engines

JavaScript-Templates

  • Google Closure Templates, ein Java/-JavaScript-Template-System, um server- und/oder client-seitig HTML-Templates zu erstellen.

JavaScript-Server-Technologie

siehe Node.js

JavaScript-Testumgebungen

Responsive Webdesign

Beispiele

BigInt

5.10 + 10.20 === 15.30  false

let a = BigInt(2), b= 256n;

console.log(a ** b);