【1、字符串模板方法】
传统的 JavaScript 语言,输出模板是使用+拼接的,或则使用replace替换的
1、"<span>"+user.name+"</span>"
2、"<span>#name</span>" .replace("name",user.name);
这种写法相当繁琐不方便,ES6 引入了模板字符串解决这个问题
模板字符串是增强版的字符串,用反引号(`)标识。
它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
模板字符串中嵌入变量,需要将变量名写在${}之中
比如 var user={name:"tom"};
在末班字符串中输出 `hello word ${user.name} `
${}大括号内部可以放入任意的 JavaScript 表达式,可以进行运算,以及引用对象属性。模板字符串之中还能调用函数。
模板字符串可以表示多行字符串,所有的空格和缩进都会被保留在输出之中。你不想要这个换行,可以使用trim方法消除它
【2、标签模板】
模板字符串可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。这被称为“标签模板”
比如 alert(123) 使用标签模板 可以写成 alert`123`
标签模板其实不是模板,而是函数调用的一种特殊形式。“标签”指的就是函数,紧跟在后面的 模板字符串 就是它的参数.
但是,如果模板字符里面有变量,就不是简单的调用了,而是会将 模板字符串 先处理成多个参数,再调用函数。
let a = 5;let b = 10;
handler `Hello ${ a + b } world ${ a * b } tom`; = handler(['Hello ', ' world ', 'tom'], 15, 50);
第一个参数是一个数组,该数组的成员是模板字符串中那些没有变量替换的部分
其他参数,都是模板字符串各个变量被替换后的值。 刚才例子中,模板字符串含有两个变量,因此tag会接受到value1和value2两个参数。
String.raw()
String.raw方法,往往用来充当模板字符串的处理函数,返回一个斜杠都被转义(斜杠前面再加一个斜杠)的字符串,对应于替换变量后的模板字符串。
var shuchu=`Hi\n${2+3}!`;
//换行已经没有了 Hi
5
// 返回 "Hi\\n5!"
如果原字符串的斜杠已经转义,那么String.raw会进行再次转义。
可以作为处理模板字符串的基本方法,它会将所有变量替换,而且对斜杠进行转义,方便下一步作为字符串来使用.
声音简介
用户评论
表情0/300
音频列表
- 2019-04
- 2019-03
- 2019-03
- 2019-02
- 2019-02
- 2019-02
- 2019-02
- 2019-02
- 2019-02
- 2019-02
查看更多
itwangyang520
老是,这个有没有对应的数据呀,这样边看,你边讲,边敲,这样效果更好