Nove karakteristike “string-a”

String su iterabilne kolekcije

String tip podataka je od ES2015 standarda postalo iterabilna kolekcija podataka tzv. “iterable”. Sada su string-ovima dostupni svi mehanizmim koji zahtevaju da kolekcija ima implementiran “iterable protokol”. Pa tako sada možemo nad string-ovima koristiti “for..of”:

for (const clanKolekcije of 'abc') {
    console.log(clanKolekcije);
}
// Vraća:
// a
// b
// c

ili čak da koristimo spread operator koji takodje zahteva iterable kolekciju za kreiranje niza:

const karakteri = [...'abc']; //
console.log(karakteri); // Vraća: ['a', 'b', 'c']

Više o ovome pogledajte u delu “Iteratori i Iterable protokol”

Šablonski literali (template literals)

šablonski literali

Šablonski literali (eng. “template literals”) su znakovni nizovi (tzv. string) sa ugradjenim izrazima. Obeležavaju se obrnutim polunavodnicima (eng. backtick).
“Template literal” predstavlja novi poboljšani način konkatenacije string-ova, koji je pregledniji i jednostavniji za rad. U template literal-u je dozvoljena ugradnja izraza, ukoliko se obeleže sa dolar znakom i vitičastim zagradama. Template podrazumeva tzv. ” “preset format” dok “literal” predstavlja vrednost koja je napisana tačno onako kako se podrazumeva da se tumači. Stoga svaka nova linija, dodatna praznina (tab) postaju deo tog stringa
Šablonski literali objedinjuju sledeće karakteristike:

  • String interpolation
    let first = 'Pera';
    let last = 'Perić';
    console.log(`Zdravo ${first} ${last}!`); //Vraća: Zdravo Pera Perić!
  • Multi-line string literals tzv. “preset format”, tj. kako je zapisano u kodu tako se i interpretira na izlazu.
    let multiLine = `Ovo je
    neki string
        koji se definiše
    u više linija`;
    
    // Izlaz:
    //Ovo je
    //neki string
    //    koji se definiše
    //u više linija
Primer

Primer uradjen sa ES5 i konkatenacijom string-ova:

var osoba = {
  ime: 'Petar',
  nadimak: 'Pera',
};
console.log('Zdravo, Ja sam ' + osoba.ime + '!'  +  "\n" + 'Možete me zvati "' + osoba.nadimak + '".');

// Zdravo, Ja sam Petar!
// Možete me zvati "Pera".

Novi pristup sa šablonskim literalima:

var osoba = {
  ime: 'Petar',
  nadimak: 'Pera',
};
console.log(`Zdravo, Ja sam ${osoba.ime}!
Možete me zvati "${osoba.nadimak}".`);

// Zdravo, Ja sam Petar!
// Možete me zvati "Pera".

Continue reading…