在研究了这个 Es6 标签模板示例之后:
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);
我看到返回的是var yo = func(strings, raw, x, y, x + y);
我了解有关字符串文字和x
y
插入的值的基础知识。我不明白的是......何时使用字符串与何时使用原始字符串?由于该函数具有两个数组,并且用户无法控制告诉该函数何时使用 raw 以及何时使用cooked(strings)。