In JavaScript ermöglichen Template-Strings das Einbetten von Ausdrücken in Strings, was man auch als String-Interpolation bezeichnet.
Diese Funktionalität erweitert die des eingebauten globalen Objekts String.
Du kannst Template-Strings in JavaScript erstellen, indem du Text in Backticks einschließt. Sie erlauben nicht nur, dass der Text Zeilenumbrüche und andere Sonderzeichen enthält, sondern du kannst auch Variablen und andere Ausdrücke einbetten.
const num1 = 1;
const num2 = 2;
`Adding ${num1} and ${num2} gives ${num1 + num2}.`;
// => Adding 1 and 2 gives 3.
Im obigen Beispiel werden Backticks - (``) - verwendet, um einen Template-String darzustellen. Der ${...} ist der Platzhalter, der für die Ersetzung verwendet wird.
Alle Nicht-String-Typen werden implizit in Strings umgewandelt.
Dieses Thema wird im Konzept Typkonvertierung behandelt.
Alle Arten von Ausdrücken können mit Template-Strings verwendet werden.
const track = 'JavaScript';
`This track on exercism.org is ${track.toUpperCase()}.`;
// => This track on exercism.org is JAVASCRIPT.
Wenn du Strings über mehrere Zeilen formatieren möchtest:
`This is an example of using template
strings to accomplish multiple
lines`;
Mit den verfügbaren Ersetzungsmöglichkeiten kannst du auch Logik in den Prozess einbringen, um zu bestimmen, wie der ausgegebene String aussehen soll.
Ein Beispiel dafür ist das Einbetten eines ternären Operators.
Dieser Operator ist eine Kurzform für das Schreiben einer if/else-Anweisung.
Die Syntax lautet condition ? consequent-expression : alternative-expression.
Wenn die Bedingung truthy ist, wird der Operand auf der linken Seite des Doppelpunkts zurückgegeben.
Andernfalls ist das Ergebnis des ternären Ausdrucks der Operand auf der rechten Seite des Doppelpunkts.
const grade = 95;
`You have ${grade > 90 ? 'passed' : 'failed'} the exam.`;
// => You have passed the exam.
In dieser Übung schreibst du Code, der einem Schilderunternehmen hilft, individuelle Botschaften für seine Schilder zu erstellen.
Implementiere die Funktion buildSign(occasion, name), die einen String als Parameter occasion und einen String mit dem Namen einer Person als Parameter name entgegennimmt.
Die beiden Parameter werden in einen Template-String eingebettet, um die Botschaft auf dem Schild auszugeben.
buildSign('Birthday', 'Rob');
// => "Happy Birthday Rob!"
Implementiere die Funktion buildBirthdaySign(age), die ein Alter entgegennimmt und anhand des Alters einen Teil der Botschaft auf dem Schild bestimmt.
Ist das Alter 50 oder älter, bezeichnet das Schild die Person als mature, andernfalls als young.
Die genaue erwartete Ausgabe ist unten zu sehen:
buildBirthdaySign(50);
// => "Happy Birthday! What a mature fellow you are."
buildBirthdaySign(45);
// => "Happy Birthday! What a young fellow you are."
Implementiere die Funktion graduationFor(name, year), die einen Namen als String-Parameter und ein Jahr als Zahlen-Parameter entgegennimmt und mithilfe von String-Interpolation einen Text für ein Schild erstellt, der einen Zeilenumbruch nutzt, um die beiden Zeilen der Botschaft zu trennen.
graduationFor('Hannah', 2022);
/* => "Congratulations Hannah!
Class of 2022"
*/
Implementiere die Funktion costOf(sign, currency), die einen String mit dem Inhalt des Schilds und einen String für die Währung entgegennimmt.
Das Schild hat einen Grundpreis von 20 in der angegebenen Währung. Außerdem kostet jeder Buchstabe 2. (Leerzeichen werden in die Berechnung einbezogen.)
Der zurückgegebene Text enthält die Kosten für die Erstellung des Schilds, geschrieben mit zwei Nachkommastellen, gefolgt vom Währungs-String.
costOf('Happy Birthday Rob!', 'dollars');
// => "Your sign costs 58.00 dollars."
Melde dich bei Exercism an, um JavaScript mit 37 Konzepte159 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.