突出显示字符串中的HTML语法?
有没有办法(插件,选项或提示和技巧)可以突出显示JS字符串中的HTML语法? 我的文档是.js文件,其中我使用包含HTML代码的字符串.是否可以突出显示这些字符串中的HTML语法? 解决方案 您可以使用扩展名 -html 注意:您需要用多行字符串前面的语言添加评论 其他解决方案 您建议的扩展名要求您以/*html*/或html之类的评论前缀字符串.我正在与Angular合作,我不想浏览所有模板以前缀为前缀,因此我发现此扩展程序自动在没有前缀的情况下可以自动进行: 它包含在John Papa的Angular Essentials包中: https://marketplace.visal.visalstudio.com/itemnemnemnemnedemname=johnpapa.角度肯定 其他解决方案 for vue 尝试 vue内联模板: = faisalhakim47.vue-inline-template
2 2023-11-24
编程技术问答社区
使用模板字符串和 && 操作符的 React 条件类名
关于堆栈流有许多问题,这与将条件类别的名称应用于反应组件有关.但是,对于这种特殊情况,我没有看到一个很好的答案: 我有一个基本的DIV,我想有条件地应用" IS-Required"类.这是我的方法: 这里的主要问题是,当Isrequired为False时,我的编译HTML代码最终看起来像这样: 显然,我可以使用这样的三元运算符,因此我可以返回一个空字符串: 但是在编译的HTML代码中,该类中包含了此额外的随机空间,这不会引起任何渲染问题,但我仍然不喜欢它: 甚至仍然可以在" so
8 2023-07-29
编程技术问答社区
节点文档中的`...${...}...`代码是什么意思?
我试图一次学习Express Library和Node.js.首先,我要查看的是节点reqiure(moduleName)函数的细节. 我看了看文档示例文档: const circle = require('./circle.js'); console.log( `The area of a circle of radius 4 is ${circle.area(4)}`); 更具体地说是${circle.area(4)} bit. 据我了解,JavaScript中的$就像其他任何变量一样.当我们在客户端网络开发上使用它时,它将用作文档功能的代表(我认为).使用节点时分配了什么? 最重要的是,该语法是什么意思? ${circle.area(4)} 如果$只是对某些函数someFunction()的引用,那么它不等于此someFunction(){cirle.area(4)}.我没有看到这是有效的语法. 另外,为什么他们不直接直接调用circle.a
24 2023-04-23
编程技术问答社区
ES6模板字数与串联字符串的对比
我有以下代码的代码,适用于 >模板文字: let person = {name: 'John Smith'}; let tpl = `My name is ${person.name}.`; let MyVar = "My name is " + person.name + "."; console.log("template literal= " + tpl); console.log("my variable = " + MyVar); 输出如下: template literal= My name is John Smith. my variable = My name is John Smith. 这个是小提琴. 我尝试搜索确切的差异,但找不到它, 以下两个语句之间有什么区别? let tpl = `My name is ${person.name}.`; 和 let MyVar = "My name is "+ person.
12 2023-04-23
编程技术问答社区
作为对象属性名称的模板字符串
为什么JavaScript不允许模板字符串作为对象属性密钥?例如,当我输入时: foo = {`bar`: 'baz'} 进入nodejs repl,它带有带有长堆栈跟踪的"意外模板字符串"的SyntaxError.但是,属性值不错,这并不那么出乎意料.例如,在浏览器中发生了类似的错误 模板字符串在"计算属性名称"中允许.例如,在支持语法的所有浏览器中,这都可以完美地编译: var foo = { [`bar` + 1]: `baz` }; 并创建对象{"bar1": "baz"}. 为什么不允许模板字符串作为字面对象键?是出于性能原因吗?模板字符串必须在运行时进行编译(如果我错了,请纠正我),这意味着每次遇到此对象时,解释器都必须计算对象名称.考虑到"煮熟"模板字符串之类的东西,尽管自ES5以来我们已经有很多东西,但它似乎会变得慢. Firefox并未将其提及为错误,这就是为什么我发现它出乎意料的原因.将来的某个时候允许语法吗? 解决方案
14 2023-04-23
编程技术问答社区
用于javascript模板字符串的Polyfill
是否有使用Backtick的JavaScript模板字符串的polyfills?我指的是看起来像这样的代码: var textTemplate = ` My Template String Some more stuf here... `; 我不希望使用诸如预告片或其他需要建造步骤的工具等转板器.此外,将模板放置在单独的脚本标签中的JavaScript模板引擎对我来说也不是理想的选择. 我真的很想能够与同一文件中的标准ES5代码一起使用模板字符串.这可能吗? 编辑:我特别需要模板字符串才能在IE11中工作.我意识到他们已经在大多数其他浏览器中都做到了.我现在也知道,多芬不是我想要的正确术语. 解决方案 是否有使用Backtick的JavaScript模板字符串的polyfills? 否.您无法获得Backticks的新JavaScript语法的polyfill.多文件不会影响代码的编译或执行代码行.它只能
84 2023-04-19
编程技术问答社区
在JavaScript中调用一个函数的反符号(`...`)。
我不确定如何解释,但是当我运行 时 console.log`1` 在Google Chrome中,我会像 一样输出 console.log`1` VM12380:2 ["1", raw: Array[1]] 为什么要调用日志函数,为什么要制作raw: Array[1]? 的索引 catgocat在JS室提出的问题,但是除了有关模型模型之外,没有任何答案.字符串这真的不适合为什么会发生这种情况. 解决方案 在ES-6中,它被称为标记的模板,可以阅读有关它们的在这里,有趣的是,我在聊天的星级部分中找到了链接. ,但代码的相关部分如下(您基本上可以创建一个过滤的排序). function tag(strings, ...values) { assert(strings[0] === 'a'); assert(strings[1] === 'b'); assert(values[0] === 42); return 'whatever';
你能将ES6模板字符串 "淡化 "为普通字符串吗?
我必须围绕gettext的限制来识别ES6模板字符串,我考虑将模板字符串的"非插值值"作为汇编步骤,以便仅具有"正常"字符串代码. 基本上我想实现的是转变 const adjective = 'wonderful' const something = `Look, I am a ${adjective} string` console.log(something) > "Look, I am a wonderful string" 进入这个 const adjective = 'wonderful' const something = 'Look, I am a ${adjective} string' console.log(something) > "Look, I am a ${adjective} string" 实现此目的的一种残酷方法是使用sed,但最肯定不是更优雅(并且可能也很容易出错) sed "s/\`/'/g" FILENAME
10 2023-03-12
编程技术问答社区
ES6标签的模板函数是如何解释其参数顺序的?
考虑以下代码: function f() { console.log(Array.from(arguments)); } var x = 2; var y = 3; f`before ${x} ${y} after`; f的论点将为(根据Traceur ): ["before ", " ", " after"], 2, 3 假设我想将所有字面字符串与替换价值相连. 我该如何按正确顺序进行操作? 我需要在第一个数组中与第一个参数匹配"拆分点"? 解决方案 根据Wiki的ecmascript 6规范,它更为复杂,因为模板考虑了逃生序列: 模板 quasiTag`literalPortion\0 $x literalPortion1` 将脱糖到 // Declaration hoisted to top of module. // Escape sequences in the hoisted declaration are no
14 2023-01-24
编程技术问答社区
防止ES6模板字符串中的换行
ESLINT:第403行超过120(最大Len) 的最大线长度 我有一个长字符串,我使用ES6模板字符串构建,但我希望它没有折断: var string = `Let me be the 'throws Exception’ to your 'public static void main (String[] args)’. I will accept whatever you give me my ${love}.` console.log(string); 结果: Let me be the 'throws Exception’ to your 'public static void main (String[] args)’. I will accept whatever you give me xxx. 我的期望: Let me be the 'throws Exception’ to your 'public s
22 2023-01-23
编程技术问答社区
如何在ES6中嵌套模板字符串?
我从ESLINT中获得了prefer-template错误.对于解决方法,我将代码更改为在require函数内使用url函数内部的模板字符串如下: { background: `url(${require(`../../assets/${edge.node.name.toLowerCase()}.png` center no-repeat`)}) } 但是,这显然给出了一个错误.这是我以前使用的代码,一个加号在require函数中而不是模板字符串中的串联. { background: `url(${require('../../assets/' + edge.node.name.toLowerCase() + '.png')}) center no-repeat` } 可以定义嵌套模板字符串吗? 解决方案 是的,这是可能的,但是由于某种原因,您将)})零件放置(关闭require call call,interpolated值和CSS url),将其放
28 2023-01-16
编程技术问答社区
是否可以在es6模板字符串中包含注释?
假设我们有一个多行的ES6模板串来描述例如请求的一些URL参数: const fields = ` id, message, created_time, permalink_url, type `; 是否有任何方法可以在那个背景模板弦上发表评论?喜欢: const fields = ` // post id id, // post status/message message, // ..... created_time, permalink_url, type `; 解决方案 否. 该语法是有效的,但只会返回包含\n// post id\nid的字符串,而不是删除注释并创建一个没有它们的字符串. 如果您查看§11.8.6规格,您可以看到,在回避定界器之间识别的唯一令牌是 templatecharacters ,它接受逃脱序列,线断裂和正常字符.在§a
36 2023-01-16
编程技术问答社区
模板字符串ES6防止换行
我有一个长字符串,我使用ES6模板字符串构建,但我希望它没有折断: var string = `As all string substitutions in Template Strings are JavaScript expressions, we can substitute a lot more than variable names. For example, below we can use expression interpolation to embed for some readable inline math:` console.log(string); 结果: As all string substitutions in Template Strings are JavaScript expressions, we can substitute a lot mor
54 2023-01-16
编程技术问答社区
为什么在使用模板字符串时可以不用括号调用函数?
我有一个简单的记录功能: function log(str) { console.log('logged: ', str); } 如果我没有括号(当前使用Chrome的Dev工具)并传递模板字符串,则如下: log`foo` 输出为:logged: ["foo", raw: Array[1]] 如果我用括号称呼它, log(`foo`) 输出为:logged: foo 为什么使用模板字符串调用函数无括号在JavaScript中起作用?导致结果与用括号称呼它的情况发生了什么? 解决方案 第一个示例(log`foo`)允许语言规范确定传递给日志函数的值(请参见 12.3.7 ).第二个示例(log(`foo`))明确传递了一个参数. 模板文字可以包含字符串和表达式.有时,您可能希望对字符串零件和表达式组的字符串的编译有更多的控制权.在这种情况下,您可能正在寻找标记的模板. var name = "Jonathan"; var
52 2023-01-14
编程技术问答社区
ES6原始字符串访问的实际用途是什么?
String.raw ecmascript 6中引入的原始字符串访问的实际用途是什么? // String.raw(callSite, ...substitutions) function quux (strings, ...values) { strings[0] === "foo\n" strings[1] === "bar" strings.raw[0] === "foo\\n" strings.raw[1] === "bar" values[0] === 42 } quux `foo\n${ 42 }bar` String.raw `foo\n${ 42 }bar` === "foo\\n42bar" 我浏览了以下文档. http://es6-features.org/#rawstringaccess us/docs/web/javascript/reference/template_strings str
26 2023-01-14
编程技术问答社区
ES6标签的模板实用性
我了解es6 /a>.我看不到的是实际的可用性.什么时候比传递对象参数更好,例如现在,我只看到棘手的语法,但我不明白为什么需要/使用它.我还发现,打字稿团队选择在其他重要功能之前(以1.5为单位)实施它.标记的字符串模板背后的概念是什么? 解决方案 您可以使用标记模板来构建比常规功能调用更具表现力的API. 例如,我正在研究let admins = sql`SELECT name, id FROM ${users} WHERE ${user => user.roles.indexOf('admin') >= 0}` 注意,它与字符串插值无关;它使用标记模板以实现可读性.很难用普通函数调用来构建可以直观地读取的东西 - 我想您会有这样的东西: let admins = sql("SELECT name, id FROM $users WHERE $filter", { $users: users, $filter: (user) => user.roles.c
80 2023-01-12
编程技术问答社区
如何从一个普通的字符串构建一个模板字符串?
所以我有这个string: var name = "Chaim"; var templateStr = "Hello, my name is ${name}"; 如何将其转换为模板串,以使结果等于: var template = `Hello, my name is ${name}`; 是否有一种方法可以编程构造模板字面? 解决方案 是否有一种方法可以编程构造模板字面? 否. "以编程方式"和"文字"是对立的(除了您在编译器的领域外). 模板字符串应该更好地被命名为 interpolated字符串文字左右.请 不要将它们与 spemplates .如果要为模板使用动态创建的字符串,请使用您选择的模板引擎. 当然 function assemble(literal, params) { return new Function(params, "return `"+literal+"`;"); // TODO: Proper escap
50 2023-01-12
编程技术问答社区
将一个字符串转换为一个模板字符串
可以创建一个模板字符串作为通常的字符串, let a = "b:${b}"; ,然后将其转换为模板字符串, let b = 10; console.log(a.template()); // b:10 没有eval,new Function和其他动态代码生成的方式? 解决方案 由于您的模板字符串必须动态地引用b变量(在运行时),因此答案是: no,如果没有动态代码生成,就不可能这样做. 但是,使用eval这很简单: let tpl = eval('`'+a+'`'); 其他解决方案 在我的项目中,我已经用ES6创建了类似的东西: String.prototype.interpolate = function(params) { const names = Object.keys(params); const vals = Object.values(params); return new Function(...names,
88 2023-01-07
编程技术问答社区
背号字符(`)在JavaScript中的用法
在JavaScript中,Backtick †似乎与单个报价相同.例如,我可以使用反向定义这样的字符串: var s = `abc`; 有没有一种方式,背景的行为实际上与单个报价的行为有所不同? †请注意,在程序员中," Backtick"是更普遍地称为的名称.严重的口音.程序员有时还会使用替代名称" backquote"和" backgrave"和" backgrave".另外,在堆栈溢出和其他地方," Backtick"的其他常见拼写是" Back-Tick"和" Back" tick". 解决方案 这是一项功能,称为 文字 . 它们在Ecmascript 2015规范的先前版本中被称为"模板字符串". 模板文字由Firefox 34,Chrome 41和Edge 12及以上支持,但不支持Internet Explorer. 示例:/a> 官方规格: ecmascript 2015语言规范,12.2.9.9.9.9.9.9.9模板字面词汇组
18 2023-01-07
编程技术问答社区
常规字符串和模板字符串之间的性能差异?
我现在正在使用eslint preay-template 强迫自己使用 template strings 而不是字符串concatenation. 这让我想到是否需要在模板字符串格式上使用常规字符串,例如 console.log('Why use this? It requires me to escape different quotes depending on the context. In this case \'.'); console.log(`When I can use this. It allows me to use all types of quotes (e.g. ', ") without ever worrying about escaping them.`); 我意识到JSPERF不是理想的分析工具,尽管至少在静态字符串的情况下,我无法观察到任何性能惩罚,例如 http://jsperf.com/es-string-vs-template
36 2022-09-05
编程技术问答社区