JavaScript ist eine dynamische Sprache, die objektorientierte, imperative und deklarative Stile (z. B. funktionale Programmierung) unterstützt.
In JavaScript gibt es einige grundlegende Wege, Namen Werte zuzuweisen: mit Variablen oder Konstanten. Bei Exercism werden Variablen immer in camelCase geschrieben, Konstanten in SCREAMING_SNAKE_CASE. Es gibt keinen offiziellen Leitfaden, an den du dich halten musst, und verschiedene Unternehmen und Organisationen haben unterschiedliche Styleguides. Schreib Variablen ruhig so, wie du möchtest. Der Vorteil, wenn du sie so schreibst, wie es die Übungen vorgeben, ist, dass sie in der Web-Oberfläche und in den meisten IDEs anders hervorgehoben werden.
Variablen in JavaScript können mit dem Schlüsselwort const, let oder var definiert werden.
Wenn du let oder var verwendest, kann eine Variable im Laufe ihres Lebens auf verschiedene Werte verweisen.
Zum Beispiel kann myFirstVariable mit dem Zuweisungsoperator = viele Male definiert und neu definiert werden:
let myFirstVariable = 1;
myFirstVariable = 'Some string';
myFirstVariable = new SomeComplexClass();
Im Gegensatz zu let und var können Variablen, die mit const definiert werden, nur einmal zugewiesen werden.
So werden in JavaScript Konstanten definiert.
const MY_FIRST_CONSTANT = 10;
// Can not be re-assigned.
MY_FIRST_CONSTANT = 20;
// => TypeError: Assignment to constant variable.
💡 In einer späteren Konzeptübung wird der Unterschied zwischen der Zuweisung, der Bindung und dem Wert einer Konstante untersucht und erklärt.
In JavaScript werden Einheiten von Funktionalität in Funktionen gekapselt, wobei Funktionen, die zusammengehören, meist in derselben Datei zusammengefasst werden.
Diese Funktionen haben Parameter (und können daher Argumente entgegennehmen) und können mit dem Schlüsselwort return einen Wert zurückgeben.
Funktionen werden mit der Syntax () aufgerufen.
function add(num1, num2) {
return num1 + num2;
}
add(1, 3);
// => 4
In diesem Beispiel heißt die Funktion add.
Sie hat zwei Parameter, num1 und num2.
Sie gibt einen Wert zurück: das Ergebnis des Ausdrucks num1 + num2.
Dann wird die Funktion add mit zwei Argumenten aufgerufen: 1 und 3.
Das Ergebnis der Funktion, also der Rückgabewert, ist 4.
💡 In JavaScript gibt es viele verschiedene Möglichkeiten, eine Funktion zu deklarieren.
Einige dieser anderen Möglichkeiten sehen anders aus als die Verwendung des Schlüsselworts function.
Der Track versucht, sie nach und nach einzuführen, aber wenn du sie schon kennst, kannst du jede davon verwenden.
In den meisten Fällen ist die eine oder die andere nicht besser oder schlechter.
Um eine function, eine Konstante oder eine Variable in anderen Dateien verfügbar zu machen, müssen sie mit dem Schlüsselwort export exportiert werden.
Eine andere Datei kann diese dann mit dem Schlüsselwort import importieren.
Das nennt man auch das Modulsystem.
Ein gutes Beispiel dafür ist, wie alle Tests funktionieren.
Jede Übung hat mindestens eine Datei, zum Beispiel lasagna.js, die die Implementierung enthält.
Die Implementierung wird mit export aus der Datei exportiert und steht damit in einer anderen Datei zum Import zur Verfügung.
Außerdem gibt es mindestens eine weitere Datei, zum Beispiel lasagna.spec.js, die die Tests enthält.
Diese Datei importiert die öffentlichen (also die mit export freigegebenen) Einheiten, um die Implementierung zu testen:
// file.js
export const MY_VALUE = 10;
export function add(num1, num2) {
return num1 + num2;
}
// file.spec.js
import { MY_VALUE, add } from './file';
add(MY_VALUE, 5);
// => 15
Lucians Freundin ist auf dem Heimweg und er hat das Abendessen zu ihrem Jahrestag noch nicht gekocht!
In dieser Übung schreibst du etwas Code, um Lucian zu helfen, eine köstliche Lasagne aus seinem Lieblingskochbuch zu kochen.
Du hast vier Aufgaben. Sie drehen sich um die Zeit, die für das Kochen der Lasagne benötigt wird.
Definiere die Konstante EXPECTED_MINUTES_IN_OVEN, die angibt, wie viele Minuten die Lasagne im Ofen bleiben sollte. Sie muss exportiert werden. Laut Kochbuch beträgt die erwartete Backzeit 40 Minuten.
Implementiere die Funktion remainingMinutesInOven, die die tatsächlichen Minuten, die die Lasagne bereits im Ofen war, als Parameter entgegennimmt und auf Grundlage der erwarteten Backzeit in Minuten aus der vorherigen Aufgabe zurückgibt, wie viele Minuten die Lasagne noch im Ofen bleiben muss.
remainingMinutesInOven(30);
// => 10
Implementiere die Funktion preparationTimeInMinutes, die die Anzahl der Schichten, die du zur Lasagne hinzugefügt hast, als Parameter entgegennimmt und zurückgibt, wie viele Minuten du mit der Vorbereitung der Lasagne verbracht hast, wobei jede Schicht 2 Minuten Vorbereitung braucht.
preparationTimeInMinutes(2);
// => 4
Implementiere die Funktion totalTimeInMinutes, die zwei Parameter entgegennimmt: Der Parameter numberOfLayers ist die Anzahl der Schichten, die du zur Lasagne hinzugefügt hast, und der Parameter actualMinutesInOven ist die Anzahl der Minuten, die die Lasagne bereits im Ofen war. Die Funktion sollte zurückgeben, wie viele Minuten du insgesamt mit dem Kochen der Lasagne verbracht hast. Das ist die Summe aus der Vorbereitungszeit in Minuten und der Zeit in Minuten, die die Lasagne bis jetzt im Ofen war.
totalTimeInMinutes(3, 20);
// => 26
Melde dich bei Exercism an, um JavaScript mit 37 Konzepte159 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.