String literali u JavaScriptu
Stringovi su tekstualne vrednosti u našem programu. Osim brojeva, oni su najvažniji tip podataka sa kojima radimo.
String literal je praktično konstanta koju možemo zadati u programu. Stringovi se mogu zadati unutar navodnika ili unutar apostrofa. Ne zaboravite - ako počnete string navodnikom, tako morate i da ga završite. Isto važi i za apostrofe.
"String unutar navodnika."
'String unutar apostrofa.'
Ovako zadat string ne može da stoji samostalno u programu. Obično ga dodeljujemo nekoj promenljivoj.
var prom = "neki string";
Specijani znakovi
Ponekad imamo potrebu za znakovima koje inače ne bismo mogli da normalnim putem ubacimo u string. Ovi znakovi se zadaju tzv. "preskakanjem" (nema dobrog prevoda za termin escape u ovom kontekstu), odnosno navođenjem obrnute kose crte (backslash).
Znak | Opis |
---|---|
\' | apostrof |
\" | navodnik |
\n | novi red (new line / line feed) |
\r | početak novog reda (carriage return) |
\t | tabulator |
\v | vertikalni tabulator |
\f | nova strana (form feed) |
\b | jedan znak unazad (backspace) |
\\ | obrnuta kosa crta |
U praktičnom radu će nam najviše trebati navodnici i apostrofi, novi red i sama obrnuta kosa crta.
Primeri
Kako da ubacim navodnike unutar stringa?
Ovo je sasvim legitimno pitanje - u velikom broju slučajeva ćemo biti u situaciji da u string moramo da ubacimo baš onaj znak kojim je string označen.
var pogresno = "Ovo je "veliki" tekst.";
Ako bismo ovako naveli string, imali bismo grešku u programu, pošto bi string ustvari bio "Ovo je ", a sve ostalo bi predstavljalo nešto što kompjuteru ne bi bilo razumljivo. Zakrpa bi bilo korišćenje različitih znakova za označavanje stringa:
var moze1 = 'Ovo je "veliki" tekst.';
var moze2 = "Detektiv O'Hara je vodio slučaj.";
Međutim, ovo je samo privremeno rešenje - malo komplikovaniji slučaj bi nas opet doveo u nezgodnu situaciju. U tom slučaju u pomoć nam priskaču specijalni znakovi. Pre svakog "unutrašnjeg" navodnika koji je ustvari deo teksta, unosimo obrnutu kosu crtu.
var moze1 = "Ovo je \"veliki\" tekst.";
var moze2 = 'Detektiv O\'Hara reče - "Ovo je bio moj najteži slučaj".';
String u više redova
Neki jezici omogućavaju da zadamo string kroz više redova. Ovo zna da bude korisno ako je string dugačak i time program postaje čitljiviji. Međutim u JavaScript-u se kraj reda tumači i kao kraj naredbe (znači mogli bismo da izostavljamo tačku-zarez). Tako bi naš string bio pokidan i imali bismo grešku u programu:
var greska = "Nemoj ići kuda te put vodi,
idi tamo gde nema puta i ostavi trag za sobom.
Emerson";
Postoje načini da se ovo ponašanje u JavaScriptu zaobiđe - potrebno je "preskočiti" znak za kraj reda uvođenjem kose crte kao poslednjeg znaka u redu:
var moze = "Nemoj ići kuda te put vodi, \
idi tamo gde nema puta i ostavi trag za sobom. \
Emerson";
/*
VREDNOST PROMENLJIVE:
Nemoj ići kuda te put vodi, idi tamo gde nema puta i ostavi trag za sobom. Emerson
*/
Na ovaj način dobijamo jedan spojeni string. Ako baš želimo da i unutar stringa imamo nove redove, moramo da koristimo specijalni znak za novi red - \n:
var moze = "Nemoj ići kuda te put vodi, \n\
idi tamo gde nema puta i ostavi trag za sobom. \n\
Emerson";
/*
VREDNOST PROMENLJIVE:
Nemoj ići kuda te put vodi,
idi tamo gde nema puta i ostavi trag za sobom.
Emerson
*/
Možda ipak ne?
Ovaj metod vam ne bismo preporučili. Ako se koristi neki minifikator JavaScript programa (program koji sažima naš program kako bi prenos bio brži), ceo program će biti sveden na jedan red. Obrnuta kosa crta bi onda mogla da nam napravi probleme!