====== JavaScript ======
===== Kommentare =====
Eine Zeile:
// Ein einzeiliger Kommentar
Mehrere Zeilen:
/*
Ein
mehrzeiliger
Kommentar
*/
===== Strict Mode =====
Um Browser anzuweisen JavaScript im "Strict Mode" auszuführen, muss dies die der erste Anweisung im JavaScript sein:
'use strict';
Diese //globale// Anweisung kann u.U. zu Problem mit anderen Scripts führen, die nicht nach dem "Strict Mode" (also unsauber) entwickelt wurden. Deshalb empfiehlt es sich, den "Strict Mode" nur in Funktionen zu verwenden:
(function () {
'use strict';
// this function is strict...
}());
(function () {
// but this function is sloppy...
}());
===== Konstanten =====
In JavaScript gibt es leider keine echten Konstanten, daher behilft man sich mit i.d.R. mit folgender Konvention: Namen von Konstanten dürfen nur aus Großbuchstaben bestehen.
var PI = 3.14;
===== Variablen =====
Variablen werden mit dem Schlüsselwort ''var'' gesetzt. Der [[lexikon:type|Typ]] der Variable wird mittels [[lexikon:ducktyping|Duck Typing]] ermittelt.
var i = 0; // Ganze Zahl
var x = 1.234; // Komma-Zahl
var text = "Loren Ipsum ..." // String
var numbers = [1, 2, 3, 4]; // Array
var obj = {}; // Objekt
==== Überprüfen ob eine Variable gesetzt wurde ====
if (typeof(fooBar) !== 'undefined' && fooBar !== null) {
// fooBar exists!
}
===== Arrays =====
// Create array
var foo = [];
// Append an element to an array
foo.push('New element');
===== Strings =====
==== Länge eines Strings bestimmen ====
Die Länge eines Strings lässt sich, wie bei **jedem** anderen Objekt in JavaScript, über die Eigenschaft ''length'' bestimmen(([[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length|String.length – Mozilla Developer Network]])):
var foo = 'Hello World!';
var fooLength = foo.length;
// fooLength = 12
==== String kürzen ====
Strings lassen sich mit der Funktion ''substr()'' kürzen(([[http://stackoverflow.com/questions/7463658/javascript-trim-a-string-to-length/7463674#7463674|JavaScript: Trim a string to length – Stack Overflow]])):
var foo = 'Hello World!';
var start = 0;
var maxLength = 10;
foo.substr(start, maxLength);
// foo = Hello Worl
==== String teilen ====
Strings lassen sich mit der Funktion ''split()'' teilen; die String-Teile werden als Array zurückgegeben(([[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split|String.prototype.split() – Mozilla Developer Network]])):
var foo = 'Hello World!';
var fooParts = foo.split(' ');
// fooParts = ['Hello', 'World!']
==== Zeilenumbrüche (\n) in HTML-Zeilenumbürche umwandeln ====
var text = 'Hello\nWorld';
text = text.replace(/\n/g, '
');
==== E-Mail-Adressen validieren ====
Simple, nicht ganz vollständige E-Mail-Überprüfung:
var pattern = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if (!pattern.test(emailAddress)) {
// emailAddress contains a valid E-Mail address
}
===== Funktionen =====
==== Parameter-Werte vorgeben ====
In JavaScript ist es nicht vorgesehen, dass einem Parameter bei der Definition ein Wert zugwiesen wird! Um dennoch Parameter einen Standard-Wert zuweisen zu können, muss überprüft werden, ob der Parameter gesetzt wurde:
function fooBar(foo, bar) {
foo = typeof(foo) !== 'undefined' ? foo : 42;
bar = typeof(bar) !== 'undefined' ? bar : 'Hello World';
}
Quelle: [[http://stackoverflow.com/questions/894860/set-a-default-parameter-value-for-a-javascript-function/894877#894877|Stack Overflow: Set a default parameter value for a JavaScript function]]
===== Objekte =====
==== Anzahl der Eigenschaften bestimmen ====
Über die Anzahl der Eigenschaften eines Objekts lässt sich quasi die "Länge" eines Objektes bestimmten (z.B. um zu überprüfen, ob ein Objekt überhaupt existiert):
var foo = {}; // An object
if (Object.keys(foo).length == 0) {
// Object is empty
}
===== Links =====
* [[https://developer.mozilla.org/docs/Web/JavaScript|MDN: JavaScript]]
* [[http://www.json.org/|JSON: JavaScript Object Notation]]
* [[https://pinboard.in/u:aberaberarne/t:javascript|Arnes Link-Sammlung zu JavaScript]]
==== Tutorials ====
* [[https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript|MDN: A re-introduction to JavaScript]]
* [[http://javascript.crockford.com/javascript.html|Douglas Crockford: JavaScript: The World's Most Misunderstood Programming Language]]
* [[https://www.codeschool.com/courses/javascript-road-trip-part-1|Code School: JavaScript Road Trip, Part 1]]\\ Kostenlos nach Registrierung bei //Code School//
=== Kostenpflichtige Tutorials ===
* [[https://www.codeschool.com/paths/javascript|Code School: JavaScript]]
* [[https://www.video2brain.com/de/videotraining/webprogrammierung-grundlagen|video2brain: Webprogrammierung: Grundlagen]]
* [[https://www.video2brain.com/de/videotraining/javascript-crashkurs-2012|video2brain: JavaScript – Crashkurs]]
* [[https://www.video2brain.com/de/videotraining/javascript|video2brain: JavaScript]]