最近在项目中使用了ES6的模版字符串,在这里加以总结。html
1.以前咱们也可使用JavaScript输出模版字符串,一般是下面这样的:es6
$("#result").append( "He is <b>"+person.name+"</b>"+"and we wish to know his"+person.age+".That is all" );
可是咱们能够看到:这样的传统作法须要使用大量的“”(双引号)和 + 来拼接才能获得咱们须要的模版。可是这样是十分不方便的。app
因而ES6中提供了模版字符串,用`(反引号)标识,用${}将变量括起来。上面的例子能够用模版字符串写成下面这样:函数
$("#result").append( `He is <b>${person.name}</b>and we wish to know his${person.age}.that is all` );
这样的作法就简洁了不少,咱们不须要再使用大量的""和+来拼接字符串和变量。spa
2. 固然,模版字符串能够引入变量,不使用变量也是能够的。以下所示:code
` I am a man.` ` No matter what you do, I trust you.`
3. 咱们还能够先定义变量,而后在模版字符串中嵌入变量:htm
var name="zzw"; ` ${name},no matter what you do, I trust you.`
4.显然,因为反引号是模版字符串的标识,若是咱们须要在字符串中使用反引号,咱们就须要对其进行转义,以下所示:对象
`No matter\` what you do, I trust you.`
5.注意:若是使用模版字符串表示多行字符串,全部的空格和缩进都会被保存在输出中!!blog
console.log( `No matter\` what you do, I trust you.`);
输出结果以下:ip
6. 在${}中的大括号里能够放入任意的JavaScript表达式,还能够进行运算,以及引用对象属性。
var x=88; var y=100; console.log(`x=${++x},y=${x+y}`);
结果以下所示:
7.更强大的是:模版字符串还能够调用函数:
function string(){ return "zzw likes es6!"; } console.log(`你想说什么? 嗯,${string()}`);
结果以下所示:
另外,若是函数的结果不是字符串,那么,将按照通常的规则转化为字符串:
function string(){ return 666; } console.log(`你想说什么? 嗯,${string()}`);
结果以下所示:
在这里,实际上数字666被转化成了字符串666.
8.若是在${}中的变量时没有命名的,那么会报错:
console.log(`你想说什么? 嗯,${string()}`);
在上面这句代码中,string()函数没有声明,因而报错:
9.其实,咱们还能够在${}中输入一个字符串,知识结果仍旧会返回一个字符串:
console.log(`你想说什么? 嗯,${"其实我不是变量~"}`);
结果以下所示:
10.若是但愿引用模版字符串自己,能够像下面这样写:
let str="return"+"`Hello! ${name}`"; let func=new Function("name",str); console.log(func("zzw"));
结果以下:
没有伞的孩子必须努力奔跑!