问题标签 [template-strings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
278 浏览

javascript - 模板字符串中的值未更新

嗨,我将 fName、lName 和位置设置为空字符串,我希望在单击按钮后更改它们的值并将该值保存到 this.templates ${this.fName} 等。

showMessage 方法应该接收点击并更新值并注入模板。除了更新值之外,一切都很好。当它到达“mP.innerHTML = _this.template;”时 行的值是空的,就像在开始时设置的一样。

奇怪的是在“mP.innerHTML = _this.template;”之前运行的 console.log(_this.fName) 点击时给出正确的值。

可能是什么问题呢?我该如何解决这个问题?

0 投票
3 回答
527 浏览

python - 扩展 Python 模板字符串

是否可以扩展模板字符串,以便我可以向标识符添加方法:

默认情况下,我可以替换简单的变量:

但我希望使用自定义方法(例如as_b)扩展标识符:

我知道我可以轻松地使用格式化字符串文字做类似的事情,但是否可以使用模板字符串,就像上面一样?我不能使用格式化字符串文字,因为它不能在脚本、JSON 文件或任何包含花括号的文本中工作。

本质上,我正在寻找可以在格式化字符串文字灵活性中提供模板字符串语法的东西。

0 投票
0 回答
198 浏览

javascript - 没有变量插值的模板字符串

是否可以在 JavaScript 中有一个不插入变量值的模板字符串?我想要像这个例子一样有实际的 JS 代码块(这将是多行并包含转义序列):

我可以在我的 Node.js 应用程序中的函数之间传递。逃避反引号没有问题,但我想知道是否有一种简单的方法可以停止变量的插值,以便我可以将模板字符串嵌套在我的模板字符串中。

我知道一个选项是将代码定义为,let code = '${code}';但我想知道是否有一种更简洁的方法可以做到这一点,其中插值完全关闭,就像String.raw关闭转义序列的解释一样。

0 投票
1 回答
4143 浏览

javascript - javascript 模板字符串中的默认值

有没有办法访问 javascript 模板字符串引擎来为未定义的变量提供默认值?

这也可以:

如果那不可能,是否有一个模板字符串引擎可以完全执行 javascript 的功能并具有此功能?

0 投票
2 回答
48 浏览

javascript - 模板文字字符串问题中的 Javascript 函数参数

我正在使用基本网络浏览器的 webtools(带有 F12 的工具集)学习 javascript。这是一个显示示例

我期望结果为“Hello Andy Anderson”,但我得到了一个未定义的结果

0 投票
2 回答
211 浏览

javascript - 标记模板文字的 TemplateObject 数组是否被其领域弱引用?

JavaScript 运行时创建一个冻结数组,Object.freeze(['str0 ', ' str1'])但具有附加.raw属性。

是否可以将该对象用作 a 中的键WeakMap以避免每次通过循环时都必须基于数组重做工作?

12.2.9.3 节运行时语义:GetTemplateObject ( templateLiteral )描述了如何缓存此值:

  1. 领域成为当前领域记录。
  2. templateRegistry领域.[[TemplateMap]]。

所以tag在上面的循环中从使用到使用应该是相同的,这对于键来说是一个很好的属性。

在我看来, [[TemplateMap]] 将不得不弱引用模板对象数组,否则

会泄漏内存。

我在规范中没有看到任何内容,但是对于广泛使用的 JavaScript 引擎,是否最终会收集用于标记字符串模板的 WeakMap 条目不在可重新输入的范围内?

我问是因为我已经根据这个假设实现了一些东西,但还没有弄清楚如何测试它。

0 投票
4 回答
7224 浏览

javascript - 模板字符串不起作用

模板字符串应该适用于任何终端,例如 Visual Studio Code 终端或 Windows 终端。但它没有。我做了这个代码视觉工作室代码。这是我的代码

输出是

请在我的代码中指定所需的更改,并解释为什么它目前不起作用。

0 投票
3 回答
104 浏览

javascript - Javascript ES6 模板字符串函数名称 - Chrome OK,Firefox KO - 似乎是一个转译问题

如何跨浏览器调用动态函数名?我已经看到了一些方法来做到这一点,但没有一个像下面这样“优雅”。问题是它在 Chrome 中工作,但在 Firefox 和 Safari 中都没有。

如果我打电话

在 Chrome 上它工作正常,该函数被正确调用。在 Firefox 上它说

如果我想实现这一点,我该怎么做?

编辑以添加更多上下文

框架是 React。

例子:

如果我在 render() 中直接调用这个组件,它就可以工作。

编辑 2这似乎是一个转译问题,而不是浏览器问题。正如您所指出的,该代码对 Chrome 和 Firefox 有效。我正在与 Meteor 和 Babel 一起使用 React。感谢@Jaromanda X 的提示。

仅供参考,缩小(=生产)的 Meteor 代码也不能在 Chrome 上运行。

0 投票
1 回答
5255 浏览

ecmascript-6 - 我可以在 ES6 中的对象键上使用模板字符串吗?

我可以创建一个将键值作为模板字符串传递的对象吗?

有没有其他方法可以做到这一点?

0 投票
1 回答
20185 浏览

javascript - 在模板字符串中插入新行?

我试过把它分成两行:

我也试过:

但这些都不起作用。templateString仍然作为一条线出现。如何创建多行模板字符串?