10.3.2021

Template String Quiz

Frage 1

Was wird gelogged?

let ne = (wcu) => (ba) => (tor) => `ne${wcu}${ba}${tor}`

console.log(ne('wcu')`ba``tor`);
  1. Uncaught SyntaxError: Unexpected string
  2. (wcu) => (ba) => (tor) => `ne${wcu}${ba}${tor}`bator
  3. newcubator
  4. netorbawcu
  5. Uncaught TypeError: "ba" is not a function
Antwort und Frage 2

Richtige Antwort: 3.

ne ist hier eine Template Tag funktion. Diese sieht man sonst häufig z.B. im Zusammenhang mit graphql queries. Als ersten parameter bekommt sie den text des nachfolgenden template strings übergeben. Dies lässt sich auch verschachteln, sodass man mehrere template strings ohne syntax error direkt hintereinander schreiben kann. Ob das verschachteln außerhalb eines Quiz sinn macht wage ich zu bezweifeln.

Frage 2

Nur eines der Folgenden Statements logged wirklich "\n". Welches?

  1. console.log(`\n`);
  2. console.log(String.raw`\n`);
  3. console.log(String.raw(`\n`));
Antwort
  1. Ist richtig. 1. loggt eine leere Zeile und 3. wirft einen Fehler: TypeError: Cannot convert undefined or null to object

Mit der String.raw funktion kann man in einem Template String die Escapes ignorieren. Dies funktioniert aber nur wenn man sie als template tag funktion aufruft, da dabei als parameter ein object mit {raw: "text"} übergeben wird.

Mehr über die Template Tag funktionen kann man hier lesen: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates

Lucas

Softwareentwickler

Zur Übersicht

Standort Hannover

newcubator GmbH
Bödekerstraße 22
30161 Hannover

Standort Dortmund

newcubator GmbH
Westenhellweg 85-89
44137 Dortmund