在JavaScript中,反引号†的工作原理与单引号相同。例如,我可以使用反勾号来定义这样的字符串:

var s = `abc`;

反勾号的行为与单引号的行为有区别吗?


†请注意,在程序员中,“backtick”是通常被称为严肃重音的一个名称。程序员有时也会使用“backquote”和“backgrave”这两个替代名称。此外,在Stack Overflow和其他地方,“backtick”的其他常见拼写是“back-tick”和“backtick”。


当前回答

好的部分是我们可以直接进行基本的数学运算:

坚果= 7 更多。innerHTML = ' 到目前为止你收集了${nuts} nuts ! <人力资源> 加倍,得到${nuts + nuts} nuts!! ` < div id = "更多" > < / div >

它在工厂函数中变得非常有用:

函数坚果(){ 返回的 你有${it}坚果!< br > 你的坚果的余义:${Math.cos(it)} <br> 三个螺母:${3 * it} <br> 你的坚果编码在BASE64:<br> ${btoa(它)} ` } 螺母。Oninput =(函数(){ 出去了。innerHTML = nuts(nuts .value) }) < h3 >坚果计算器 <input type="number" id="nut"> < div id = "出" > < / div >

其他回答

这是一个称为模板字面量的特性。

在ECMAScript 2015规范的早期版本中,它们被称为“模板字符串”。

Firefox 34、Chrome 41和Edge 12及以上版本支持模板文字,但Internet Explorer不支持。

示例:http://tc39wiki.calculist.org/es6/template-strings/ 官方规范:ECMAScript 2015语言规范,12.2.9模板文字词汇组件(有点干)

模板字面量可以用来表示多行字符串,并可以使用“插值”来插入变量:

var a = 123, str = `---
   a is: ${a}
---`;
console.log(str);

输出:

---
   a is: 123
---

更重要的是,它们不仅可以包含变量名,还可以包含任何JavaScript表达式:

var a = 3, b = 3.1415;

console.log(`PI is nearly ${Math.max(a, b)}`);

反勾号包含模板字面值,以前称为模板字符串。模板字面量是允许嵌入表达式和字符串插值特性的字符串字面量。

模板字面量将表达式嵌入到占位符中,由$符号和表达式周围的花括号表示,即${expression}。占位符/表达式被传递给函数。默认函数只是连接字符串。

要转义反斜杠,在它前面加一个反斜杠:

`\`` === '`'; => true

使用反勾号更容易地编写多行字符串:

console.log(`string text line 1
string text line 2`);

or

console.log(`Fifteen is ${a + b} and
not ${2 * a + b}.`);

vs.普通JavaScript:

console.log('string text line 1\n' +
'string text line 2');

or

console.log('Fifteen is ' + (a + b) + ' and\nnot ' + (2 * a + b) + '.');

转义序列:

Unicode转义由\u开始,例如\u00A9 由\u{}表示的Unicode码位转义,例如\u{2F804} 以\x开头的十六进制转义,例如\xA9 八进制文字转义由\和(a)数字(s)开始,例如\251

好的部分是我们可以直接进行基本的数学运算:

坚果= 7 更多。innerHTML = ' 到目前为止你收集了${nuts} nuts ! <人力资源> 加倍,得到${nuts + nuts} nuts!! ` < div id = "更多" > < / div >

它在工厂函数中变得非常有用:

函数坚果(){ 返回的 你有${it}坚果!< br > 你的坚果的余义:${Math.cos(it)} <br> 三个螺母:${3 * it} <br> 你的坚果编码在BASE64:<br> ${btoa(它)} ` } 螺母。Oninput =(函数(){ 出去了。innerHTML = nuts(nuts .value) }) < h3 >坚果计算器 <input type="number" id="nut"> < div id = "出" > < / div >

除了字符串插值外,还可以使用反标记调用函数。


var sayHello = function () {
    console.log('Hello', arguments);
}

// To call this function using ``

sayHello`some args`; // Check console for the output

// Or
sayHello`
    some args
`;

检查样式组件。他们大量使用它。

你也可以制作模板的模板,并达到私有变量。

var a= {e:10, gy:'sfdsad'}; //global object

console.log(`e is ${a.e} and gy is ${a.gy}`); 
//e is 10 and gy is sfdsad

var b = "e is ${a.e} and gy is ${a.gy}" // template string
console.log( `${b}` );
//e is ${a.e} and gy is ${a.gy}

console.log( eval(`\`${b}\``) ); // convert template string to template
//e is 10 and gy is sfdsad

backtick( b );   // use fonction's variable
//e is 20 and gy is fghj

function backtick( temp ) {
  var a= {e:20, gy:'fghj'}; // local object
  console.log( eval(`\`${temp}\``) );
}