1.之前我们也可以使用JavaScript输出模版字符串,通常是下面这样的:
$("#result").append(
"He is <b>"+person.name+"</b>"+"and we wish to know his"+person.age+".That is all"
);
但是我们可以看到:这样的传统做法需要使用大量的“”(双引号)和 + 来拼接才能得到我们需要的模版。但是这样是十分不方便的。
于是es6中提供了模板字符串
,用`(反引号)标识,用$()将变量括起来。上面的例子
$('#result').append(
`"He is <b>${person.name}</b>and we wish to know his${person.age}.That is all
);
这种做法就简洁很多,我们不需要再使用大量的“”和+来拼接字符串和变量。
`i am tingjiangjiang`
//不适用变量,只有字符串时
`i just who i am
lalala`
//使用模板字符串表示多行字符串,所有的空格和缩进都会被保存在输出中!!
`i just \`who i am
lalala`
//由于反引号是模板字符串的标识,如果我们需要在字符串中使用反引号,我们就需要对其进行专业。
- 在${}中的大括号里可以放入任意的javascrip表达式,还可以进行运算,以及引用对象属性。
var x=88;
var y = 100;
console.log(`x=${++x}`,y=${x+y});
//x=89,y=189
4.更强大的是:模板字符串还可以调用函数 :
function string(){
return "tingjiangjaing likes es6!";
}
console.log(`what do you want to say?
en!${string()}`);
//what do you want to say?
en!tingjiangjiang likes es6!
另外,如果函数的结果不是字符串,那么,将按照一般的规则转换为字符串
function string(){
return 666;
}
console.log(`你想说什么?
嗯,${string()}`);
//这这里,数组666,转换为字符串666
4.如果需要引用模板字符串本身,在需要时执行,可以写成函数
let func = (name)=>`Hello ${name}!`;
func('tingjiangjiang')
//'Hello tingjiangjiang'
在上面的代码中,模板字符串写成了一个函数的返回值。执行这个函数,就相当于执行这个模板字符串了。