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

Wir freuen uns Sie kennen zu lernen

Hat Sie unser Angebot überzeugt? Dann freuen wir uns, Sie kennen zu lernen. Kontaktieren Sie uns gerne für ein unverbindliches Erstgespräch.

newcubator GmbH
Freie-Vogel-Straße 369
44269 Dortmund
dortmund@newcubator.com
+49 231/586 873 80
newcubator GmbH
Bödekerstraße 22
30161 Hannover
hannover@newcubator.com
+49 511/957 313 00