背景
模板字面量是ES6新增的定义字符串的方式。模板字面量使用反引号标识,在模板字符串内使用单引号和双引号无需转义(在模板字符串内使用反引号需要转义)。
模板字面量的使用
- 模板字面量会保持反引号内的空格和换行符(开始和结尾的空格换行符可以通过trim方法去除),支持多行字符串。
let str = `
hello world`; // str = '\nhello world'
console.log(str.trim()) // hello world
- 模板字面量支持字符串插值,出现在${}中的表达式都将被内联的求值。严格意义上来说,模板字面量不是字符串,而是一种特殊的JavaScript表达式,这种表达式求值的结果是一个字符串实例(通过toString()方法得到字符串),所以在模板字面量中插入的变量也会从它们最近的作用域中取值。
let value = 5;
value = `${
value } to the second power is ${
value * value }`;
console.log(value); // 5 to the second power is 25
// 重写的toString方法被调用
let foo = {
toString: () => 'World' };
console