ES6知识点整理模板字符串和标签模板的应用

ES6 中对字符串进行了扩展,而模板字符串就是一个非常实用的方式,可以在html中实现与变量和方法的混编

之前我们手动拼接字符串的方式

let hello = 'Hello';
let html = '
' + ''+ hello +'' + '
'
; console.log(html); //
Hello

ES6中使用模板字符串来优化了拼接的方式

let name = 'Joh';
let qq = '56655';

function log() {
  return 'Hi there!';
}
let html = `
  
  • ${ name === 'Joh' ? 'is Joh' : 'not Joh'}
  • ${qq}
  • ${log()}
`
console.log(html); /* // 输出如下html:
  • is Joh
  • 56655
  • Hi there!
*/

可以看出模板字符串优化了之前拼接字符串的方式,更方便于编程

关于标签模板

未经处理的标签函数与模板字符串的结合,导致模板字符串失效

function tag() {
  return 'tag';
}
let name = "Joh";
var res = tag`hello ${name}`;
console.log(res); // tag

标签函数对模板字符串进行处理, 安全编码的示例:

function safe(strArr) {
  let res = '';
  console.log(arguments);
  for(var i=0, len = strArr.length; i < len; i++) {
    res += strArr[i].replace(/, '<').replace(/>/g, '>');
    if(i < arguments.length -1) {
      res += arguments[i + 1];
    }
  }
  return res;
}
let name = 'Joh';
var result = safe`

hello ${name}

`
; console.log(result); // <p>hello Joh</p>

你可能感兴趣的:(ES-6-7-8,Javascript)