在JavaScript中,反引号†的工作原理与单引号相同。例如,我可以使用反勾号来定义这样的字符串:
var s = `abc`;
反勾号的行为与单引号的行为有区别吗?
†请注意,在程序员中,“backtick”是通常被称为严肃重音的一个名称。程序员有时也会使用“backquote”和“backgrave”这两个替代名称。此外,在Stack Overflow和其他地方,“backtick”的其他常见拼写是“back-tick”和“backtick”。
在JavaScript中,反引号†的工作原理与单引号相同。例如,我可以使用反勾号来定义这样的字符串:
var s = `abc`;
反勾号的行为与单引号的行为有区别吗?
†请注意,在程序员中,“backtick”是通常被称为严肃重音的一个名称。程序员有时也会使用“backquote”和“backgrave”这两个替代名称。此外,在Stack Overflow和其他地方,“backtick”的其他常见拼写是“back-tick”和“backtick”。
当前回答
反撇号(')用于定义模板字面量。模板字面量是ECMAScript 6中的一个新特性,它使处理字符串更加容易。
特点:
我们可以在模板文字中插入任何类型的表达式。 它们可以是多线的。
注意:我们可以很容易地在反撇号(')内使用单引号(')和双引号(")。
例子:
var nameStr = `I'm "Alpha" Beta`;
为了插入变量或表达式,我们可以使用${expression}符号。
var name = 'Alpha Beta';
var text = `My name is ${name}`;
console.log(text); // My name is Alpha Beta
多行字符串意味着您不再需要在新行中使用\n。
例子:
const name = 'Alpha';
console.log(`Hello ${name}!
How are you?`);
输出:
Hello Alpha!
How are you?
其他回答
反撇号(')用于定义模板字面量。模板字面量是ECMAScript 6中的一个新特性,它使处理字符串更加容易。
特点:
我们可以在模板文字中插入任何类型的表达式。 它们可以是多线的。
注意:我们可以很容易地在反撇号(')内使用单引号(')和双引号(")。
例子:
var nameStr = `I'm "Alpha" Beta`;
为了插入变量或表达式,我们可以使用${expression}符号。
var name = 'Alpha Beta';
var text = `My name is ${name}`;
console.log(text); // My name is Alpha Beta
多行字符串意味着您不再需要在新行中使用\n。
例子:
const name = 'Alpha';
console.log(`Hello ${name}!
How are you?`);
输出:
Hello Alpha!
How are you?
简介:
JavaScript中的反引号是ECMAScript 6 // ECMAScript 2015中引入的一个特性,用于制作简单的动态字符串。这个ECMAScript 6特性也被称为模板字符串文字。与普通字符串相比,它具有以下优点:
在模板字符串中允许换行,因此可以是多行。正常的字符串字面量(用" or ""声明)不允许有换行符。 我们可以使用${myVariable}语法轻松地将变量值插入到字符串中。
例子:
const name = 'Willem'; Const age = 26; Const story = ' 我的名字是:${name} 我是:${age}岁 ”; console.log(故事);
浏览器的兼容性:
所有主要浏览器厂商(Internet Explorer除外)都支持模板字符串字面值。所以在生产代码中使用它是相当安全的。浏览器兼容性的详细列表可以在这里找到。
除了字符串插值外,还可以使用反标记调用函数。
var sayHello = function () {
console.log('Hello', arguments);
}
// To call this function using ``
sayHello`some args`; // Check console for the output
// Or
sayHello`
some args
`;
检查样式组件。他们大量使用它。
这是一个称为模板字面量的特性。
在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)}`);
很多评论回答了你的大部分问题,但我主要想回答这个问题:
反勾号的行为与单引号的行为有区别吗?
我注意到模板字符串的一个不同之处是不能将其设置为对象属性。更多信息在这篇文章;从公认的答案中引用一段有趣的话:
模板字符串是表达式,不是字面量1。
但基本上,如果你想把它用作对象属性你就必须用方括号把它括起来。
// Throws error
const object = {`templateString`: true};
// Works
const object = {[`templateString`]: true};