// this is a comment
let a = 3;
let b = 4;
console.log(a * b);
if (a * b > 10) {
console.log('greater');
}
im Webbrowser: Developer Tools (F12) - Konsole
Vor ihrer Verwendung: Variablen werden üblicherweise mit let
deklariert
let a = 3;
später können sie überschrieben werden
a = 4;
Statements werden üblicherweise mit ;
beendet
// single-line comment
/*
multi-
line
comment
*/
gute Ressource: - MDN (Mozilla Developer Network)
Number
String
Boolean
null
: fehlender / unbekannter Wertundefined
: (noch) nicht zugewiesenZusammensetzen von mehreren Strings:
let name = 'Tom';
let message = 'Hello, ' + name + '!';
weitere Möglichkeit, Strings zu erstellen - mit Backticks begrenzt (`)
Erlauben das Einsetzen von Werten
let name = 'Tom';
let message = `Hello, ${name}!`;
Boolescher Wert: Ja/Nein - Wert
In JavaScript: true
oder false
Null repräsentiert einen unbekannten oder fehlenden Wert
let firstName = 'Michael';
let middleName = null;
let lastName = 'Jones';
Undefined tritt z.B. bei Variablen auf, die noch nicht zugewiesen wurden
let firstName;
Gemeinsamkeiten mit:
ein object kann benannte Einträge (Properties) haben
let person = {
firstName: 'John',
lastName: 'Doe',
nationality: 'Canada',
birthYear: 1980,
};
Zugriff auf Properties:
person.firstName
oder
person["firstName"]
Ãœbung:
Erstelle und verändere Objekte, die verschiedenes repräsentieren - z.B.:
ähnlich zu Listen in Python
let primes = [2, 3, 5, 7, 11];
let users = ['Alice', 'Bob', 'Charlie'];
let products = [
{ name: 'IPhone 12', price: 949 },
{ name: 'Fairphone', price: 419 },
{ name: 'Pixel 5', price: 799 },
];
Erstelle und ändere Daten, die aus Objects und Arrays bestehen und die verschiedene Objekte repräsentieren, z.B.:
direkt in der gleichen Datei:
<script type="module">
// javascript code here
</script>
traditionelle Möglichkeit - erlaubt auch Entwicklung im lokalen Dateisystem:
<script src="myscript.js"></script>
moderne Möglichkeit - ermöglicht imports in JavaScript - muss auf einem Server gehostet sein (kann auch ein lokaler Server sein)
<script src="index.js" type="module"></script>
zwei einfache Funktionen, die im Browser vordefiniert sind:
alert()
- um Text in einem Dialog anzuzeigenprompt()
- um den Benutzer in einem Dialog nach einer Eingabe zu fragenEingabe: Mit Hilfe von prompt
:
let name = prompt('What is your name?');
prompt
liefert immer einen String zurück
Ausgabe der Begrüßung
alert(`Nice to meet you, ${name}!`);
Math
-Objekt)Beispiel: if-Abfrage
let a = 3;
if (a > 0) {
console.log('a is greater than 0');
console.log('a is positive');
}
Beispiel: for-of-Schleife
let names = ['Alice', 'Bob', 'Charlie'];
for (let name of names) {
console.log(`Hello, ${name}!`);
console.log(`Bye, ${name}!`);
}
Für den Einsatz von grundlegenden Kontrollstrukturen müssen wir Werte vergleichen können:
let a = 2;
let b = 3;
let c = '2';
console.log(a == b); // a gleich b
console.log(a == c); // a gleich c
console.log(a === c); // a gleich c (strikt)
console.log(a != c); // a ungleich b
console.log(a !== c); // a ungleich c (strikt)
Viele Entwickler verwenden nur die strikten Vergleichsoperatoren ===
und !==
, um unterwartete Fehler zu vermeiden
Beispiele:
3 === '3'; // false
3 == '3'; // true
0 == []; // true
[] == ''; // true
console.log(a < b); // less than
console.log(a > b);
console.log(a <= b); // less than or equal to
console.log(a >= b);
Das Resultat eines Vergleichs ist ein boolescher Wert (True
/ False
)
Wir können das Resultat in einer Variablen speichern:
let isAdult = age >= 18;
&&
bedeutet und||
bedeutet oder!
bedeutet nichtBeispiele:
let canBecomeUsPresident =
person.age >= 35 && person.nationality === 'us';
let isTemperatureExtreme =
temperatureCelsius < -10 || temperatureCelsius > 30;
let isTemperatureNormal = !isTemperatureExtreme;
Beispiel:
let age = 30;
let ageSeconds = age * 365 * 24 * 60 * 60;
if (ageSeconds <= 1000000000) {
console.log('You are less than 1 billion seconds old.');
} else {
console.log('You are older than 1 billion seconds.');
}
if (ageSeconds <= 100000000) {
console.log('You are less than 100 million seconds old.');
} else if (ageSeconds < 1000000000) {
console.log('You are less than 1 billion seconds old');
} else if (ageSeconds < 2000000000) {
console.log('You are less than 2 billion seconds old');
} else {
console.log('You are older than 2 billion seconds');
}
let coinSide;
// random number between 0 and 1
let number = Math.random();
if (number > 0.5) {
coinSide = 'heads';
} else {
coinSide = 'tails';
}
Weitere Ãœbung: Lasse den Benutzer das Ergebnis raten und teile ihm mit, ob er richtig lag
Mit einer for-of-Schleife können wir die Inhalte eines Arrays durchlaufen
Bezeichnung in anderen Programmiersprachen: for-each
const names = ['Alice', 'Bob', 'Charlie'];
for (let name of names) {
console.log(`Hello, ${name}`);
}
Die Variable name
nimmt nacheinander jeden der in names
angegebenen Werte an.
Beginne mit einem Array von Zahlen, z.B. [2, 5, -3, 8, 1, -5]
Gib alle positiven Einträge aus, z.B. 2, 5, 8, 1
Gib den größten Eintrag aus, z.B. 8
Gib den größten und den kleinsten Eintrag aus z.B. 8
, -5
Beispiel:
let a = 1;
while (a < 2000) {
console.log(a);
a = a * 2;
}
Schlüsselwörter:
break
: Beenden einer Schleifecontinue
: Beenden eines DurchlaufsBei verschachtelten Schleifen beziehen sie sich auf die innerste Schleife
Beispiel:
let a = 1;
while (true) {
a = a * 2;
console.log(a);
if (a > 1000) {
break;
}
}
Zählen von 0 bis 9:
for (let i = 0; i <= 9; i++) {
console.log(i);
}
äquivalent zu:
let i = 0;
while (i <= 9) {
console.log(i);
i++;
}
erweiterte Zuweisung (augmented assignment): folgende Statements sind äquivalent zueinander
a = a + 1;
a += 1;
a++;
Ãœbung: Ausgabe einer Multiplikationstafel
1 x 7 = 7
2 x 7 = 14
3 x 7 = 21
4 x 7 = 28
...