今天在项目中用到了模版字符串,在此感谢小马同学的知识分享。
1、ES6中提供的模版字符串
在使用模板字符串之前我们都是这样输出模版字符串的:
console.log( "My name is <b>"+person.name+"</b>"+"and I am a "+person.sex+".Nice to meet you." );
这样的传统做法需要使用大量的“”(双引号)和 + 来拼接才能得到我们需要的模版,很不方便。
于是ES6中提供了模版字符串,用`(反引号)标识,用${}将变量括起来。上面的例子可以用模版字符串写成下面这样:
console.log( `My name is <b>${person.name}</b>and I am a${person.age}.Nice to meet you.`);
这样的做法就简洁了很多,我们不需要再使用大量的""和+来拼接字符串和变量。
2、模版字符串引入变量
当然,模版字符串可以引入变量,不使用变量也是可以的。如下所示:
` I am happy.`
` No matter what you do,
I trust you.`
我们可以先定义变量,然后在模版字符串中嵌入变量:
var name="lisa";
` ${name},no matter what you do,
I trust you.`
3、在字符串中使用反引号
由于反引号是模版字符串的标识,如果我们需要在字符串中使用反引号,我们就需要对其进行转义:
`No matter\` what you do,
I trust you.`
输出结果如下:
5、可以放入任意的JavaScript表达式
在${}中的大括号里可以放入任意的JavaScript表达式,还可以进行运算,以及引用对象属性。
var x=88;
var y=100;
console.log(`x=${++x},y=${x+y}`);
结果如下所示:
6、调用函数
更强大的是:模版字符串还可以调用函数!
function string(){
return "吃葡萄不吐葡萄皮";
}
console.log(`你想说什么? 嗨,${string()}`);
如果函数的结果不是字符串,那么,将按照一般的规则转化为字符串:
function string(){
return 666;
}
console.log(`你想说什么?
嗯,${string()}`);
结果如下所示:
在这里,实际上数字666被转化成了字符串666.
如果在${}中的变量时没有命名的,那么会报错:
console.log(`你想说什么? 嗯,${string()}`);
7、在${}中输入一个字符串
console.log(`你想说什么?
嗯,${"其实我不是变量~"}`);
8、引用模版字符串本身
如果希望引用模版字符串本身,可以像下面这样写:
let str="return"+"`Hello! ${name}`";
let func=new Function("name",str);
console.log(func("zzw"));
结果如下:
参考文章:ES6之模版字符串