gpt4 book ai didi

javascript - 是否可以使用标记函数参数来生成完全相同的文字和占位符序列?

转载 作者:行者123 更新时间:2023-12-03 04:35:01 24 4
gpt4 key购买 nike

这本书https://basarat.gitbooks.io/typescript/docs/template-strings.html其中有这个例子:

var say = "a bird in hand > two in the bush";
var html = htmlEscape `<div> I would just like to say : ${say}</div>`;

// a sample tag function
function htmlEscape(literals, ...placeholders) {
let result = "";
...
// interleave the literals with the placeholders
for (let i = 0; i < placeholders.length; i++) {
result += literals[i];
result += placeholders[i]

在这种情况下是否可以产生完全相同的转义输入字符串?例如,如果占位符排在第一位会发生什么?

澄清

html 转义函数的作者假设第一个文字应该位于 html 转义函数返回的字符串中的第一个。但是如果占位符 ${say} 首先出现怎么办?换句话说,标签函数有什么方法可以评估占位符和文字的顺序吗?

最佳答案

模板文字始终以字符组件开始和结束,该字符组件与替换交替。它总是比替换多一个字符串部分。占位符永远不可能出现在“第一个” - 但它可能出现在空字符串之后:

const say = 42;
tag `{say} it is`;
function tag(strings, ...placements) {
console.assert(strings[0] === "")
console.assert(strings[1] === " it is");
console.assert(placments[0] === 42);
console.assert(strings.length == placements.length+1);
}

请注意,标签函数永远无法生成占位符(名称),它不知道它们。它仅传递展示位置值。

关于javascript - 是否可以使用标记函数参数来生成完全相同的文字和占位符序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43331948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com