模版字符串

模版字符串是ES6的新语法之一,使用反引号``包含字符串,具有多行,变量,函数等多种特点。如:

// 字符串中嵌入变量
let name = 'Jack'; let str = `Hello ${name}`; // Hello Jack
// 多行字符串,会保留空格和换行
`In JavaScript this is
 not legal.`

// 模版字符串中使用反引号`,需要转义\`
let yo = `Yeah, \`yo\``;

// 因为在${}中可以放入任意的js表达式,所以不止能使用变量,还可以使用函数和运算,当然如果js有错误的话,也会报错
let fn = function(){ return 'Hello'};
let str = `${fn()}, Jack`;


模板字符串的功能,不仅仅是上面这些。它可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。这被称为“标签模板”功能


alert`123`
// 等同于
alert(123)

 

tag函数的第一个参数是一个数组,该数组的成员是模板字符串中那些没有变量替换的部分,也就是说,变量替换只发生在数组的第一个成员与第二个成员之间、第二个成员与第三个成员之间,以此类推。这种用法可以用来过滤组成字符串的变量。

function tag(stringArr, value1, value2){
  // ...
}

// 等同于

function tag(stringArr, ...values){
  // ...
}

 

posted @ 2019-08-24 20:24  060302  阅读(127)  评论(0编辑  收藏  举报