JavaScript operator konkatenacije
Operator konkatenacije je jedini operator u JavaScriptu koji radi sa stringovima. Konkatenacija predstavlja povezivanje stringova. Malo zbunjujuće, za konkatenaciju se koristi operator + (plus).
Ovaj operator povezuje dva stringa čime se dobija novi string.
var novo = str1 + str2;
s1 + s2 | dva stringa se povezuju u jedinstven string |
Različiti tipovi
Budite posebno pažljivi kada koristite ovaj operator. U nekim situacijama možemo dobiti neočekivane i netačne rezultate.
Kao što znamo, JavaScript nije strogo tipiziran jezik. Tako se dešava da ista promenljiva tokom izvršavanja programa nekoliko puta promeni tip. Ako nismo veoma pažljivi, može se desiti da u nekom trenutku promenljiva ima string (tekstualnu) vrednost na mestu gde očekujemo broj.
Ovo posebno dolazi do izražaja kod operatora konkatenacije. Pošto se koristi znak + (plus), koji se koristi i za sabiranje, može se desiti da se u nekom trenutku umesto sabiranja izvrši "nadovezivanje" stringa na string.
Pošto JavaScript pokušava da se na najbolji način izbori sa "netipiziranim" promenljivama, koliko god je moguće u pozadini vrši konverzije vrednosti, pa tako može da se desi da dobijemo netačan rezultat a nikakvu poruku o grešci. Ovo posebno smeta programerima koji su došli iz strogo tipiziranih okruženja i koji su navikli da ih kompajler upozori svaki put kada pokušaju da rade sa neadekvatnim tipovima.
Konkatenacija
var prom = "Doživljaji ";
var r1 = prom + "Toma" + " " + "Sojera"; // "Doživljaji Toma Sojera"
Ovo je ilustracija problema koji se javlja kada pokušamo da saberemo dve vrednosti očekujući da su brojevi, a desi se da jedan od njih ili oba budu stringovi.
var r1 = 10 + 6; // 16
var r2 = "10" + 6; // "106"
var r3 = 10 + "6"; // "106"
var r4 = "10" + "6"; // "106"