ES6有两种新的文字:
模板文字:支持插值的多行字符串文字。
例如:
const firstName = 'Jane';
console.log(`Hello ${firstName}! How are you today?`);
标记模板文字:是函数调用,其参数通过模板文字提供。
例如:
String.raw`Hello ${firstName}! How are you today?
这两个文字之间有什么区别?何时使用标记模板文字?
答案 0 :(得分:7)
使用标记模板文字,我们可以使用函数修改模板文字的输出。第一个参数包含一个字符串文字数组。第二个,以及第一个之后的每个参数,是已处理的替换表达式的值。我们可以在函数中使用任何名称。
var a = 1;
var b = 2;
function tag(strings, ...values) {
console.log(strings[0]); // "One "
console.log(strings[1]); // " Two"
console.log(strings[2]); // " Three"
console.log(values[0]); // 1
console.log(values[1]); // 2
}
tag`One ${ a } Two ${ b } Three`;
// One
// Two
// Three
// 1
// 2
这里我们的标签功能将返回带有自定义格式的输出
答案 1 :(得分:2)
ES6具有新功能
模板文字
和
标记模板文字(标记模板)
使得使用字符串更容易。您将文本包装在“反引号”
中有了这个,我们可以:
1.Interpolate变量
let foo = "abc";
console.log(`Welcome ${foo}`); // Welcome abc
2.插入任何表达方式
console.log(`2+3 = ${2+3}`) // 2+3 = 5
3.Declare带有'和'引号的字符串,而不必 逃避任何事情。
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.Tagged模板,我们可以将模板文字传递给一个函数,方法如下:
let person = 'Mike';
let age = 28;
let output = myTag `that ${ person } is ${ age }`;
function myTag(strings, personExp, ageExp) {
//strings[0] gets value "that "
//strings[1] gets value " is "
//personExp gets value " Mike "
//ageStr gets value "28"
return strings[0] + personExp + strings[1] + ageExp;
}
console.log(output);
// that Mike is 28
6.String.raw,我们可以得到原始表单,这是示例:
let text = String.raw `The "\n" newline won't result in a new line.'
console.log(text);
// The "\n" newline won't result in a new line.
希望这有助于!!!!!!