Objekte
Objekte besitzen
Eigenschaften: objektgebundene Variablen oder Konstanten
Methoden: objektgebundene Funktionen
Erstellung
Über Literal-Schreibweise (üblicher)
let myObj = {}; // leeres Objekt
console.log(myObj);
Über Constructor-Funktion
let myNewObj = new Object(); // leeres Objekt
console.log(myNewObj);
Eigenschaften definieren
Über Komma-separierte, key-value Paare. Das Kontext- Schlüsselwort this
erlaubt den Zugriff auf das derzeitige Objekt.
let book = {
mainTitle: "JavaScript",
subTitle: "kurz und gut",
target: "Anfänger und Fortgeschrittene",
price: 49.99,
"Händler Preis": 19.99, // key als String angelegt
showTitle: function() {
// console.log(book.mainTitle); // nicht so
console.log(this.mainTitle, this.subTitle); // nutze 'this'
}
};
console.log(book); // Eigenschaften haben keine definierte Reihenfolge
Property-Keys (Eigenschaft) mit Sonderzeichen lassen sich per String definieren (hier: “Händler Preis”), müssen dann über Property Access ausgelesen werden (siehe unten).
Eigenschaft auslesen
Über die Punkt-Notation des Objekts:
console.log(book.mainTitle);
console.log(book.price);
Über den Property Access:
Wenn der Bezeichner als String vorliegt oder als String angelegt wurde, ist der Zugriff über die Punktnotation nicht möglich. Hier muss über den Property Access erfolgen
console.log(book."Händler Preis"); // geht nicht!!
console.log(book["Händler Preis"]); // OK! Über Property Access
Eigenschaft ändern
Genauso wie auslesen über Punktnotation oder Property Access.
book.mainTitle = "Python";
console.log(book.mainTitle); // "Python"
book["Händler Preis"] = 30.00
console.log(book["Händler Preis"]); // 30.00
Eigenschaft hinzufügen und löschen
Über delete löschen.
// neue Eigenschaft
book.inStock = true;
delete book.inStock;
console.log(book.inStock); // undefined
Methoden aufrufen
Über die Punktnotation.
book.showTitle(); // Python kurz und gut
Objektdefinition in ES6
In ES6 können Variablen als gleichnamige Eigenschaften in Objekte eingefügt werden.
let price = 42.99, cat = "Office Drinks";
// ES5
let product_1 = {
name: "Talisker",
prince: price,
cat: cat
}
console.log(product_1);
// ES6
let product_2 = {
name: "Glenfiddich",
price,
cat,
sellerPrice: (price -15)
}
console.log(product_2);
Beispiel: Date Objekt
Allerhand Möglichkeiten zum Erhalten, Manipulieren und Ausgeben von Datum und Uhrzeit.
// erzeugen
let today = new Date();
console.log(today);
// getter
console.log(today.getDate()); // Tag im Monat (1 ... 31)
console.log(today.getMonth()); // Monat (0 - 11)
console.log(today.getDay()); // Wochentag (0 - 6, 0 = Sonntag)
console.log(today.getFullYear()); // Jahr
console.log(today.getHours()); // Uhrzeit Stunde
console.log(today.getMinutes()); // Uhrzeit Minute
console.log(today.getSeconds()); // Uhrzeit Sekunde
console.log(today.getMilliseconds()); // Uhrzeit Millisekunde
// JS-TimeStamp (Millisekunden seit 1.1.1970, Unix Timestamp * 1000)
console.log(today.getTime());
console.log(Date.now());
// setter
// Bestandteile Datum ändern
let newDate = new Date();
newDate.setFullYear(2224); // Jahr
newDate.setMonth(11); // Monat (April)
newDate.setDate(24); // Tag im Monat
newDate.setHours(20);
newDate.setMinutes(30);
newDate.setSeconds(0);
console.log(newDate);
// mit Datum rechnen
today.setDate(today.getDate() - 1);
today.setDate(today.getDate() + 42);
console.log(today);
// Datum mit Date-String erzeugen
console.log(new Date("Dec 24 2024 20:30:00"));
console.log(new Date(2024,11));
console.log(new Date(2024,11,6,19,23,15));
let myDate = new Date(1111111111111111); // timestamp (epoch time)
myDate.setTime(1111111111111);
console.log(myDate);
// UTC - Weltzeit
let worldTime = new Date();
worldTime.setUTCFullYear(2025);
worldTime.setUTCMonth(5);
worldTime.setUTCHours(15);
console.log(worldTime); // Angabe der UTC Zeit -> wird in lokaler Zeit ausgegeben (e.g. CEST)
console.log(worldTime.getUTCHours()); // 15
// in UTC Zeit umwandeln
let utcDate = new Date(Date.UTC(2024, 7, 31, 14, 42, 11));
console.log(utcDate);
// Zeitstring erzeugen
console.log(utcDate.toUTCString()); // UTC Zeit: Sat, 31 Aug 2024 14:42:11 GMT
console.log(utcDate.toString()); // lokale Zeitrechnung: Sat Aug 31 2024 16:42:11 GMT+0200 (Central European Summer Time)
// Formatierte Ausgabe
let now = new Date();
let formatedDate = now.toLocaleString(); // formatierte Zeitausgabe
formatedDate = now.toLocaleString("de-DE"); // deutsche Schreibweise
formatedDate = now.toLocaleString("ko-KR"); //koreanische Scrheibweise
formatedDate = now.toLocaleString("de-DE", { weekday: "long"}); // nur Wochentag in Langform (z.B. Freitag)
// Datumsausgabe parametrisieren
const OPTIONS = {
weekday: "long",
month: "long",
day: "numeric",
year: "numeric",
hour: "2-digit",
minute: "2-digit",
second: "2-digit"
}
formatedDate = now.toLocaleString("de-DE", OPTIONS); // z.B. Freitag, 15. November 2024 um 12:19:51
// nur Datum-Strings erhalten
formatedDate = now.toLocaleDateString();
// nur Uhrzeit erhalten
formatedDate = now.toLocaleTimeString();
// nur Stunde erhalten
formatedDate = now.toLocaleTimeString("de-DE", {hour: "2-digit"}); // z.B. 12 Uhr
console.log(formatedDate);