ECMAScript: Unterschied zwischen den Versionen
Kowa (Diskussion | Beiträge) |
Kowa (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 7: | Zeile 7: | ||
|annotation1 = Im Artikel sind viele weiterführenden Verweise angegeben. Diese werden jeweils zu Beginn des Wintersemester aktualisiert. | |annotation1 = Im Artikel sind viele weiterführenden Verweise angegeben. Diese werden jeweils zu Beginn des Wintersemester aktualisiert. | ||
}} | }} | ||
=Definition= | ==Definition== | ||
[[JavaScript]] ist eine [[Dynamische Typisierung|dynamisch typisierte]] [[Skriptsprache]], | [[JavaScript]] ist eine [[Dynamische Typisierung|dynamisch typisierte]] [[Skriptsprache]], | ||
die [[Objektorientierte Programmierung|objektorientierte]], [[Funktionale Programmierung|funktionale]] | die [[Objektorientierte Programmierung|objektorientierte]], [[Funktionale Programmierung|funktionale]] | ||
und auch das [[Imperative Programmierung|imperative]] Programmierung unterstützt. | und auch das [[Imperative Programmierung|imperative]] Programmierung unterstützt. | ||
=Anmerkungen= | ==Anmerkungen== | ||
JavaScript wird | JavaScript wird den meisten [[Web-Browser]]n unterstützt, um HTML-Dokumente dynmisch erzeugen | ||
und verändern zu können. Es gibt | 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 standardisiert: | ||
| Zeile 20: | Zeile 20: | ||
* JavaScript 1.5.0: Standard ECMA-327, ECMAScript 3rd Edition Compact Profile (June 2001)<ref>http://www.ecma-international.org/publications/standards/Ecma-327.htm</ref> | * JavaScript 1.5.0: Standard ECMA-327, ECMAScript 3rd Edition Compact Profile (June 2001)<ref>http://www.ecma-international.org/publications/standards/Ecma-327.htm</ref> | ||
=Siehe auch= | ==Siehe auch== | ||
==Dokumentation== | ===Dokumentation=== | ||
* [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://developer.yahoo.com/performance/rules.html Regeln zur Performanz-Steigerung] | * [http://developer.yahoo.com/performance/rules.html Regeln zur Performanz-Steigerung] | ||
== JavaScript-Entwicklung== | === JavaScript-Entwicklung=== | ||
===Programmier-IDEs=== | ====Programmier-IDEs==== | ||
* [http://www.eclipse.org/ Eclipse] mit JavaScript- und Web-Plugins (insbesondere [http://www.eclipse.org/downloads/packages/eclipse-ide-javascript-web-developers/indigor Eclipse IDE for JavaScript Web Developers]) – Ursprünglich eine Java-Entwicklungsumgebung, heute eine sehr weit verbreitete Universal-Entwicklungsumgebung. | * [http://www.eclipse.org/ Eclipse] mit JavaScript- und Web-Plugins (insbesondere [http://www.eclipse.org/downloads/packages/eclipse-ide-javascript-web-developers/indigor Eclipse IDE for JavaScript Web Developers]) – Ursprünglich eine Java-Entwicklungsumgebung, heute eine sehr weit verbreitete Universal-Entwicklungsumgebung. | ||
| Zeile 35: | Zeile 35: | ||
* [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://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. | ||
===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]]). | ||
== JSDoc == | === JSDoc === | ||
* [http://code.google.com/p/jsdoc-toolkit/ JSDoc ToolKit] – Ein in JavaScript geschriebenes Tool zur Generierung von API-Dokumentationen (in HTML) für JavaScript-Anwendungen. | * [http://code.google.com/p/jsdoc-toolkit/ JSDoc ToolKit] – Ein in JavaScript geschriebenes Tool zur Generierung von API-Dokumentationen (in HTML) für JavaScript-Anwendungen. | ||
* [https://github.com/jsdoc3/jsdoc3.github.com JSDoc 3] – Ein weiteres JSDoc-Tool. | * [https://github.com/jsdoc3/jsdoc3.github.com JSDoc 3] – Ein weiteres JSDoc-Tool. | ||
| Zeile 57: | Zeile 57: | ||
* [[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) | ||
== JavaScript-Bibliotheken== | === JavaScript-Bibliotheken=== | ||
* [https://developers.google.com/closure/library/?hl=de-DE Google Closure Library], eine umfangreiche Cross-Browser-JavaScript-Bibliothek<ref name="Closure Tools"/> | * [https://developers.google.com/closure/library/?hl=de-DE Google Closure Library], eine umfangreiche Cross-Browser-JavaScript-Bibliothek<ref name="Closure Tools"/> | ||
* [http://mootools.net/ mootools] (Zitat: “MooTools is a compact, modular, Object-Oriented JavaScript framework”), [http://mootools.net/core/ MooTools Core Builder], [http://mootools.net/more/ Mootools More Builder] | * [http://mootools.net/ mootools] (Zitat: “MooTools is a compact, modular, Object-Oriented JavaScript framework”), [http://mootools.net/core/ MooTools Core Builder], [http://mootools.net/more/ Mootools More Builder] | ||
| Zeile 86: | Zeile 86: | ||
* [http://jquerymobile.com/ jQuery Mobile] (Framework für mobile Webapps) | * [http://jquerymobile.com/ jQuery Mobile] (Framework für mobile Webapps) | ||
* [http://docs.sencha.com/ Sencha Libraries (Sencha Touch, Ext ...)] (Umfassende Libraries, vor allem für mobile Endgeräte) | * [http://docs.sencha.com/ Sencha Libraries (Sencha Touch, Ext ...)] (Umfassende Libraries, vor allem für mobile Endgeräte) | ||
==== Android-Entwicklung ==== | |||
* http://blog.webducer.de/2011/09/android-neues-projekt-anlegen/ | |||
* [http://www.youtube.com/watch?v=uVqp1zcMfbE How to build Android App with HTML5/CSS/JavaScript] (Video) | |||
* Nexus S | |||
** http://nexusshacks.com/nexus-s-hacks/how-to-install-nexus-s-windows-usb-drivers/ | |||
** http://androiddrivers.net/samsung-android-drivers/download-nexus-s-drivers/ | |||
== Canvas == | === Canvas === | ||
* [http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html Canvas API] | * [http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html Canvas API] | ||
* [http://www.nihilogic.dk/labs/canvas_sheet/HTML5_Canvas_Cheat_Sheet.pdf HTML5 Canvas Cheat Sheet] | * [http://www.nihilogic.dk/labs/canvas_sheet/HTML5_Canvas_Cheat_Sheet.pdf HTML5 Canvas Cheat Sheet] | ||
==Game Engines== | ===Game Engines=== | ||
* [https://github.com/bebraw/jswiki/wiki/Game-Engines Game Engines] | * [https://github.com/bebraw/jswiki/wiki/Game-Engines Game Engines] | ||
== JavaScript-Templates== | === JavaScript-Templates=== | ||
* [https://developers.google.com/closure/templates/?hl=de-DE Google Closure Templates], ein Java/-JavaScript-Template-System, um server- und/oder client-seitig HTML-Templates zu erstellen.<ref name="Closure Tools"/> | * [https://developers.google.com/closure/templates/?hl=de-DE Google Closure Templates], ein Java/-JavaScript-Template-System, um server- und/oder client-seitig HTML-Templates zu erstellen.<ref name="Closure Tools"/> | ||
== JavaScript-Server-Technologie== | === JavaScript-Server-Technologie=== | ||
* [http://nodejs.org/ node.js] | * [http://nodejs.org/ node.js] | ||
== JavaScript-Testumgebungen == | === JavaScript-Testumgebungen === | ||
* [http://stackoverflow.com/questions/300855/looking-for-a-better-javascript-unit-test-tool Übersicht und Bewertung] (stackoverflow.com) | * [http://stackoverflow.com/questions/300855/looking-for-a-better-javascript-unit-test-tool Übersicht und Bewertung] (stackoverflow.com) | ||
* [[WikipediaEN:List_of_unit_testing_frameworks|Übersicht]] (Wikipedia EN) | * [[WikipediaEN:List_of_unit_testing_frameworks|Übersicht]] (Wikipedia EN) | ||
| Zeile 114: | Zeile 120: | ||
* [http://www.browserstack.com/ Browserstack] (alle Browser innerhalb eines Browsers testen - kostenpflichtig!) | * [http://www.browserstack.com/ Browserstack] (alle Browser innerhalb eines Browsers testen - kostenpflichtig!) | ||
== Responsive Webdesign == | === Responsive Webdesign === | ||
* http://www.elmastudio.de/webdesign/responsive-webdesign-2/ein-paar-notizen-zur-entwicklung-von-responsive-webdesigns/ | * http://www.elmastudio.de/webdesign/responsive-webdesign-2/ein-paar-notizen-zur-entwicklung-von-responsive-webdesigns/ | ||
* http://mobilehtml5.org/ | * http://mobilehtml5.org/ | ||
== Beispiele == | === Beispiele === | ||
*http://skytechgeek.com/2012/01/30-best-html5-games-to-kill-your-boredom/ <br/>([[Facebook]]-Account wird benötigt) | *http://skytechgeek.com/2012/01/30-best-html5-games-to-kill-your-boredom/ <br/>([[Facebook]]-Account wird benötigt) | ||
| Zeile 131: | Zeile 130: | ||
*http://joelb.me/scrollpath/ | *http://joelb.me/scrollpath/ | ||
=Quellen= | ==Quellen== | ||
<references/> | <references/> | ||
Version vom 22. Oktober 2014, 09:34 Uhr
Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:
| Korrektheit: 5 (vollständig überprüft) |
Umfang: 3 (einige 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 Wintersemester aktualisiert.
Definition
JavaScript ist eine dynamisch typisierte Skriptsprache, die objektorientierte, funktionale und auch das imperative Programmierung unterstützt.
Anmerkungen
JavaScript wird 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 standardisiert:
- JavaScript 1.8.5 (HTML5): Standard ECMA-262, ECMAScript Language Specification Edition 5.1 (June 2011), ISO/IEC 16262:2011[1]
- JavaScript 1.5.0: Standard ECMA-327, ECMAScript 3rd Edition Compact Profile (June 2001)[2]
Siehe auch
Dokumentation
- Mozilla Developer Network (sehr gute und aktuelle Dokumentation zu JavaScript)
- Regeln zur Performanz-Steigerung
JavaScript-Entwicklung
Programmier-IDEs
- 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.
- 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.
Utilities
- 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 erhältlich (wie beispielsweise für Notepad++ oder Dreamweaver).
JSDoc
- JSDoc ToolKit – Ein in JavaScript geschriebenes Tool zur Generierung von API-Dokumentationen (in HTML) für JavaScript-Anwendungen.
- JSDoc 3 – Ein weiteres JSDoc-Tool.
- ADWiki – Ein drittes JSDoc-Tool.
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.
- Google Closure Compiler transformiert JavaScript in kompakteres JavaScript.[3]
- ClojureScript (Download) transformiert die LISP-ähnliche Sprache Clojure in JavaScript; der erzeugte Code ist mit dem „advanced compilation mode“ des Google-Closure-Übersetzers kompatibel.[4]
- HaXe ist eine funktionale Sprache, die in diverse Zielsprachen übersetzt werden kann: C++, Flash, JavaScript, Neko, PHP, Tamarin, NodeJS.[5]
Übersichten im Web
- List of rich internet application frameworks (Wikipedia EN)
- Multiple phone web-based application framework (Wikipedia EN)
JavaScript-Bibliotheken
- Google Closure Library, eine umfangreiche Cross-Browser-JavaScript-Bibliothek[3]
- mootools (Zitat: “MooTools is a compact, modular, Object-Oriented JavaScript framework”), MooTools Core Builder, Mootools More Builder
- prototype (Klassen, Ajax, Event Handling)
- script.aculo.us (Erweiterung von Prototype um grafische Elemente; insb. integriert in Ruby on Rails)
- Dojo Toolkit (Klassen, JSON, Ajax und vieles mehr)
- Yahoo User Interface Library (YUI) (JSON, JUnit, Klassen und vieles mehr)
- microjs (viele kleine Helferlein)
- impress.js (Vortragsfolien)
- stream.js (unendlich große Container, Lazy Binding)
- Raphaël—JavaScript Library (Vektorgrafiken)
- Processing Library
- backbone.js (Framework für eine MVC-Struktur)
- require.js (Script-Loader)
- underscore.js (erweitert JS um einige Funktionen, kann auch neben jQuery oder backbone.js verwendet werden)
MVC
Mobile
- jQuery Mobile (Framework für mobile Webapps)
- Sencha Libraries (Sencha Touch, Ext ...) (Umfassende Libraries, vor allem für mobile Endgeräte)
Android-Entwicklung
- http://blog.webducer.de/2011/09/android-neues-projekt-anlegen/
- How to build Android App with HTML5/CSS/JavaScript (Video)
- Nexus S
Canvas
Game Engines
JavaScript-Templates
- Google Closure Templates, ein Java/-JavaScript-Template-System, um server- und/oder client-seitig HTML-Templates zu erstellen.[3]
JavaScript-Server-Technologie
JavaScript-Testumgebungen
- Übersicht und Bewertung (stackoverflow.com)
- Übersicht (Wikipedia EN)
- Übersicht (Wikipedia DE)
- JsUnit (GitHub), wird nicht mehr weiterentwickelt
- Jasmine (GitHub), Nachfolger von JsUnit
- rhinounit
- TestSwarm (GitHub)
- js-test-dirver
- Browserstack (alle Browser innerhalb eines Browsers testen - kostenpflichtig!)
Responsive Webdesign
- http://www.elmastudio.de/webdesign/responsive-webdesign-2/ein-paar-notizen-zur-entwicklung-von-responsive-webdesigns/
- http://mobilehtml5.org/
Beispiele
- http://skytechgeek.com/2012/01/30-best-html5-games-to-kill-your-boredom/
(Facebook-Account wird benötigt) - http://www.animaclock.com/
- http://joelb.me/scrollpath/
Quellen
- Widjaja (2012): Simon Widjaja; I will Survive; in: weave; Band: 2012; Nummer: 2; Seite(n): 86-90; Verlag: Page Verlag; Adresse: Hamburg; 2012; Quellengüte: 5 (Artikel)
