Wyszukaj / o blogu

JavaScript - etykietowanie funkcji

Opublikowano pon 11 maja 2020 w javascript • 2 min read

Template strings lub też literals zwane po polsku łańcuchami szablonowymi

Łańcuchy szablonowe [wcześniej wspominałem o nich w tym miejscu] pozwalają na podstawianie zmiennych wewnątrz informacji przeznaczonymi do druku i zawartymi pomiędzy apostrofami [ warto pamiętać o tym, że stosowanie tego formatu zapisu nie wymaga używania sekwencji ucieczkowej -> /n]

Przykładowo:

const droid = "r2d2"
const droid2 = "c3po"

console.log(`Hello 
${droid}, 
${droid2}`)

>>Hello 
>>r2d2, 
>>c3po

Funkcje mogą być również wywołane poprzez zastosowania łańcucha szablonów tzw tag functions - wówczas części tego łańcucha nie odwołujące się do zmiennych mogą być traktowane jako tablica (podzielona w miejscach gdzie znajdują się zmienne), która musi być zawarta jako argument

function droidGreeter (strings, droidName) {
console.log(strings[0] + droidName + strings[1])
return droidName + strings[0]
};

const droid = 'c3po';

console.log(droidGreeter` I am ${droid} - and you? `); // array strings = [' I am ', ' - and you? ']

>>  I am c3po - and you?
>> c3po I am

W ten sposób można tworzyć instancje różnego rodzaju informacji wynikowych przy pomocy jednej funkcji

const droids = [
  {name: 'C3PO', height: '1.71'},
  {name: 'R2D2', height: '1.09'},
  {name: 'BB8', height: '0.67'},
  {name: 'L3-37', height: '1.79'},
  {name: 'K-2SO', height: '2.16'}
]

function showSpecs (arr, n, h) {
  console.log(arr[0] + n + arr[1] + h + arr[2])
}

showSpecs`This ${droids[1].name} is ${droids[1].height}`

>> This R2D2 is 1.09

showSpecs`This droid's name is ${droids[1].name} and he is ${droids[1].height} m high`

>> This droid's name is R2D2 and he is 1.09 m high

droids.forEach(function(droids){
  showSpecs`This ${droids.name} is ${droids.height} high`; 
})

>> This C3PO is 1.71 high
>> This R2D2 is 1.09 high
>> This BB8 is 0.67 high
>> This L3-37 is 1.79 high
>> This K-2SO is 2.16 high

Patrz również tutaj aby popracować na powyższej funkcji w edytorze i konsoli online

image


Źródła: https://codeburst.io/javascript-what-are-tag-functions-97682f29521b