A JavaScriptben a template stringek segítségével kifejezéseket ágyazhatsz a stringekbe, amit string-interpolációnak is neveznek.
Ez a lehetőség kibővíti a beépített String globális objektum képességeit.
Template stringet úgy hozhatsz létre JavaScriptben, hogy a szöveget backtickek közé teszed. Így a szöveg nemcsak új sorokat és más speciális karaktereket tartalmazhat, hanem változókat és más kifejezéseket is beágyazhatsz bele.
const num1 = 1;
const num2 = 2;
`Adding ${num1} and ${num2} gives ${num1 + num2}.`;
// => Adding 1 and 2 gives 3.
A fenti példában a backtickek (``) jelölik a template stringet. A ${...} az a helyőrző, amelyet a behelyettesítéshez használsz.
A nem string típusú értékek implicit módon alakulnak stringgé.
Ezzel a témával a típuskonverzió fogalom foglalkozik.
Template stringekben bármilyen típusú kifejezést használhatsz.
const track = 'JavaScript';
`This track on exercism.org is ${track.toUpperCase()}.`;
// => This track on exercism.org is JAVASCRIPT.
Ha több sorba tördelve szeretnéd formázni a stringeket:
`This is an example of using template
strings to accomplish multiple
lines`;
A behelyettesítési lehetőségekkel logikát is vihetsz a folyamatba, hogy meghatározd, mi legyen a kimeneti string.
Erre példa a ternáris operátor beágyazása.
Ez az operátor az if/else elágazás rövidített formája.
A szintaxis: condition ? consequent-expression : alternative-expression.
Ha a feltétel truthy, akkor a kettőspont bal oldalán álló operandus adódik vissza.
Ellenkező esetben a ternáris kifejezés eredménye a kettőspont jobb oldalán álló operandus.
const grade = 95;
`You have ${grade > 90 ? 'passed' : 'failed'} the exam.`;
// => You have passed the exam.
Ebben a feladatban egy táblagyártó cégnek írsz kódot, hogy egyedi üzeneteket készíthessen a tábláira.
Valósítsd meg a buildSign(occasion, name) függvényt, amely az occasion paraméterként egy stringet fogad, a name paraméterként pedig egy nevet tartalmazó stringet.
A két paraméter egy template stringbe kerül, és ez adja ki a táblán látható üzenetet.
buildSign('Birthday', 'Rob');
// => "Happy Birthday Rob!"
Valósítsd meg a buildBirthdaySign(age) függvényt, amely egy életkort fogad, és az életkor alapján eldönti a táblán lévő üzenet egy részét.
Ha az életkor 50 vagy több, a tábla érettként szólítja meg a felhasználót, egyébként _fiatal_ként.
A pontosan elvárt kimenet alább látható:
buildBirthdaySign(50);
// => "Happy Birthday! What a mature fellow you are."
buildBirthdaySign(45);
// => "Happy Birthday! What a young fellow you are."
Valósítsd meg a graduationFor(name, year) függvényt, amely egy nevet fogad string paraméterként, egy évet pedig szám paraméterként, és string-interpolációval hozza létre a táblára szánt szöveget, amelyben egy sortörés választja el az üzenet két sorát.
graduationFor('Hannah', 2022);
/* => "Congratulations Hannah!
Class of 2022"
*/
Valósítsd meg a costOf(sign, currency) függvényt, amely egy stringet fogad, ami a tábla tartalmát tartalmazza, és egy stringet, ami a pénznemet jelöli.
A tábla alapára 20 a megadott pénznemben. Ezenkívül minden betű után 2-t számítunk fel. (A szóközök is beleszámítanak a számításba.)
A visszaadott szöveg tartalmazza a tábla elkészítésének költségét két tizedesjeggyel, majd utána a pénznem stringjét.
costOf('Happy Birthday Rob!', 'dollars');
// => "Your sign costs 58.00 dollars."
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) JavaScript nyelvet 37 fogalom159 feladat segítségével, valódi emberi mentorálással, mindez ingyen.