问题标签 [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.
javascript - 如何在 ES6 中将纯字符串转换为模板字符串
在 ES6/ES2015 中,我从 JSON 文件中导入字符串:
现在我想将该字符串用作另一个函数中的模板字符串。我能找到的所有文档都会这样做
但我找不到任何关于如何将“普通”字符串转换为模板字符串的信息。
这甚至可能吗?
string - 为什么 ES6 标记模板字符串不提供原始字符串模板?
在 ES6 中为模板字符串创建标签函数时,该函数需要一个literals
参数和一个values
参数。
但是,它不提供对原始的、未评估的、解构的模板的访问。像这样的例子:
或者也许是literals.originalTemplate
要补充的属性literals.raw
。
这有什么具体原因吗?我能想到的最好的办法是,如果将变量名传递给标记函数,可能会有一些安全隐患?
javascript - ES6 标记模板实用性
我了解 ES6标记模板的语法。我看不到的是实际可用性。什么时候比传递对象参数更好,比如jQuery 的 AJAX中的设置?$.ajax('url', { /*this guy here*/ })
现在我只看到棘手的语法,但我不明白我为什么需要/使用它。我还发现 TypeScript 团队选择在其他重要特性之前实现它(在 1.5 中)。标记字符串模板背后的概念是什么?
javascript - 模板字符串中的数字格式(Javascript - ES6)
我想知道是否可以在 Javascript 模板字符串中格式化数字,例如:
或者可能
该语法显然不起作用,它只是我正在寻找的事物类型的说明。
我知道像sprintf
from这样的工具underscore.string
,但这似乎是 JS 应该能够开箱即用的东西,特别是考虑到模板字符串的力量。
编辑
如上所述,我已经知道 3rd 方工具(例如 sprintf)和自定义函数来执行此操作。类似的问题(例如JavaScript 等价于 printf/String.Format)根本没有提到模板字符串,可能是因为在 ES6 模板字符串出现之前就已经问过了。我的问题是 ES6 特有的,并且与实现无关。如果是这种情况,我很高兴接受“不,这是不可能的”的回答,但是最好的是有关提供此功能的新 ES6 功能的信息,或者对此类功能是否存在的一些见解方法。
javascript - 如何在 div 中附加多行模板字符串?
我有一个模板字符串如下:
我期望的是这个模板代码应该出现在 div 之间。
我在 index.html 中的 div 是:
我触发追加的javascript代码是:
我想要的输出是:
我的输出是:
请建议我一些方法来获得我想要的适当间距和线条。我试过(temp.split('\n')).join('<br>')
它以单独的行打印,temp
但不能确保适当的间距。像这样:
javascript - ES2015 模板字符串不解析
我正在尝试在我的开发中开始使用 ES6/ES2015 功能,并尝试使用模板字符串来代替串联。
我有一个名为的文件meteor.jsx
,其中包含以下代码。
如果我用实际坐标调用它
它不会转换lat
或转换lon
为字符串,它只是在返回字符串中打印 '${lat}' 和 '${lon}' 。我究竟做错了什么?
javascript - 一种缩小或丑化 ES6 模板字符串的方法
就像是
将产生:
我需要的是摆脱多余的空格和换行符,就像所有其他 html 缩小工具一样。
所以它应该类似于:
有什么方法可以明智且坚不可摧地实现这一目标?
javascript - 常规字符串和模板字符串之间的性能差异?
我现在使用 ESLint prefer-template来强制自己使用模板字符串而不是字符串连接。
这让我想到是否需要在模板字符串格式上使用常规字符串,例如
我意识到 JSPerf 不是理想的分析工具,但至少在静态字符串的情况下,我无法观察到任何性能损失,例如http://jsperf.com/es-string-vs-template。
javascript - JavaScript ES6 模板字符串的类型不一致
在测试 JavaScript ES6 的新模板字符串时(在 Firefox 中,如果重要的话),我注意到它们的类型有些不一致。
我定义了一个自定义函数,如下所示:
首先,我在模板字符串周围使用括号“正常”地测试了该函数。
正如预期的那样,这产生了一种类型string
并被Hello, World!
输出到控制台。
然后我调用了函数简写,没有括号,并且出现了不一致。
类型变为object
,并Array [ "Hello, World!" ]
输出到控制台。
为什么使用第二种方法时模板字符串被包裹在一个数组中?这只是 Firefox 中的一个错误(毕竟 ES6是一个新标准)还是出于某种原因预期这种行为?
javascript - 不能在 node.js 中使用模板字符串
根据 MDN,模板字符串 应该可以在 Chrome 中工作,并且通过 Node.js 所基于的扩展 V8;但是当我尝试以下操作时,出现语法错误:
运行node file.js
只会导致SyntaxError: Unexpected token ILLEGAL
是否需要启用某种标志才能使用此功能,或者它根本没有在节点中实现?