ES6有一些新功能。
模板字面量
以及
标记模板字面量(标记模板)
这使得处理字符串更加容易。你可以用`反引号`包裹你的文本。
通过这个,我们可以:
1. 插入变量
let foo = "abc";
console.log(`Welcome ${foo}`); // Welcome abc
2. 插值任何类型的表达式
console.log(`2+3 = ${2+3}`) // 2+3 = 5
3. 使用单引号和双引号声明字符串,无需转义任何内容。
let foo = `foo is 'bar', "bar" is foo`
console.log(foo); // "foo is 'bar', "bar" is foo"
4. 多行字符串的更简洁语法
let text = `foo is bar
bar is foo`
console.log(text);
//"foo is bar
//bar is foo"
5. 标记模板,我们可以将模板字面量传递给一个函数,下面是具体的方法:
let person = 'Mike';
let age = 28;
let output = myTag `that ${ person } is ${ age }`;
function myTag(strings, personExp, ageExp) {
return strings[0] + personExp + strings[1] + ageExp;
}
console.log(output);
6. 使用String.raw,我们可以获取原始形式,以下是示例:
let text = String.raw `The "\n" newline won't result in a new line.'
console.log(text);
String.raw
还是一般的标记模板字面量? - Felix Kling