Povezivanje JavaScript stringova
Konkatenacija, odnosno povezivanje stringova se može obaviti putem operatora + (plus) ili string metodom concat().
s.concat(S) | Vraća string koji je nastao povezivanjem stringova s i S |
Ovaj metod povezuje dva ili više stringova u jedan. Poziva se iz prvog stringa, a kao parametri se zadaju jedan ili više stringova koji se redno dodaju jedan na drugi. Metod ne menja originalni string, već vraća novi string kao rezultat.
var rez = s.concat(str);
var rez = s.concat(s1, s2, ...);
Spajanje stringova
var prom = "Doživljaji ";
var hf = "Haklberi Fina";
var r1 = prom + "Toma" + " " + "Sojera"; // "Doživljaji Toma Sojera"
var r2 = prom.concat("Toma", " ", "Sojera"); // "Doživljaji Toma Sojera"
var r3 = prom.concat(hf); // "Doživljaji Haklberi Fina"
var r4 = "Avature ".concat(hf); // "Avanture Haklberi Fina"
console.log(prom); // "Doživljaji "
prom += hf; // isto što i
// prom = prom + hf;
// prom = prom.concat(hf);
console.log(prom); // "Doživljaji Haklberi Fina"
U primeru smo napravili 4 nove string promenljive. Vidimo kako se na promenljivu prom mogu doodati string literali ili promenljive. Takođe, vidimo kako i za string literal možemo pozvati metod.
Metod concat nije "mutator" - on ne menja string za koji je pozvan. Međutim, ako želimo da promenimo originalni string, to možemo lako uraditi pomoću operatora dodele, što je i pokazano na kraju primera. Operator + se može koristiti i za konkatenaciju u okviru kompleksnog operatora dodele.
String šabloni
Povezivanje stringova je moguće izvesti i korišćenjem string šablona ili bolje reći šablonskih literala (template literals).
String šabloni se zadaju unutar "krivih apostrofa" (back-ticks) i imaju nekoliko značajnih prednosti u odnosu na obične stringove (npr. mogućnost da budu zadati u više redova), a ono što nas ovde zanima je mogućnost interpolacije izraza.
PHP programeri odavno imaju mogućnost da unutar stringa ubace promenljive, koje se onda zamene svojim vrednostima. Nešto slično sada ima i JavaScript. Kako ova tehnika funkcioniše? String literal, koji je zadat unutar krivih apostrofa može "primiti" i cele izraze koji su posebno označeni - unutar vitičastih zagrada {} sa vodećim znakom za dolar ($).
var rez = `... ${izraz} ...`;
Naravno, izraz može biti i obična promenljiva, pa tako spajanje više string promenljivih možemo objediniti u jedan šablon. Sledeće dve tehnike su praktično ista stvar:
var rez = `tekst ${prom1} neki tekst ${prom2} još teksta`;
var rez = "tekst " + prom1 + " neki tekst " + prom2 + " još teksta";
Sami odlučite šta vam se više dopada.
Spajanje stringova pomoću šablonskih literala
var prom = "Doživljaji";
var hf = "Haklberi Fina";
var r = `Pročitao sam knjigu ${prom} ${hf}`;
console.log(r); // "Pročitao sam knjigu Doživljaji Haklberi Fina"
var x = 150;
var t = `Sin pojede ${x}g hleba, a otac duplo više - ${x * 2} grama.`;
console.log(t); // "Sin pojede 150g hleba, a otac duplo više - 300 grama."
Jako je važno da primetite da se unutar šablona mogu zadati i čitavi izrazi, a ne samo "gole" promenljive!