Javascript Es6 Tagged Templates - Wann wird Raw verwendet? Wann wird gekocht verwendet?

Nach dem Studium dieses Beispiels für eine Es6-Tag-Vorlage:

var yo = func`${x} + ${y}\n= ${x + y}`;
one@public-node ~/es6 $ 6to5 tag.js 
"use strict";

var _taggedTemplateLiteral = function (strings, raw) {
  return Object.freeze(Object.defineProperties(strings, {
    raw: {
      value: Object.freeze(raw)
    }
  }));
};

var yo = func(_taggedTemplateLiteral(["", " + ", "\n= ", ""], ["", " + ", "\\n= ", ""]), x, y, x + y);

Ich sehe, was zurückgegeben wird, istvar yo = func(strings, raw, x, y, x + y);

Ich verstehe die Grundlagen zu den String-Literalen und demx y Werte werden eingefügt. Was ich nicht verstehe, ist ... wann werden Zeichenfolgen verwendet oder wann werden Rohdaten verwendet? Da die Funktion über beide Arrays verfügt und der Benutzer keine Kontrolle darüber hat, wann die Funktion roh und wann gekocht (Strings) verwendet werden soll.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage