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

Zur Übersicht
Lucas Meurer

Mehr vom Devsquad...

Rahmi Tufanoglu

Angular - Funktionsaufrufe in Templates vermeiden

Sven Röttering

Mirroring Gitlab Repositories

Hallo

Wir sind für Sie da und freuen uns auf Ihre Fragen oder Ihr Feedback.

* Pflichtfeld