美文网首页
ES6 笔记 模板字符串

ES6 笔记 模板字符串

作者: yangweigbh | 来源:发表于2017-01-23 17:32 被阅读23次

ES6添加了模块字符串,可以将变量的值插入到字符串中

function authorize(user, action) {
  if (!user.hasPrivilege(action)) {
    throw new Error(
      `User ${user.name} is not authorized to do ${action}.`);
  }
}

${user.name}${action}被称为模板替换。

  • ${}中的值可以是任意javascript表达式
  • 如果${}中的值不是字符串,则会调用toString转换为字符串
  • 如果在模板字符串中显示`,则需要escape:`\\

模板字符串支持多行显示

$("#warning").html(`
  <h1>Watch out!</h1>
  <p>Unauthorized hockeying can result in penalties
  of up to ${maxPenalty} minutes.</p>
`);

TAG 模板

在模板字符串之前可以加上一个tag,这个tag可以是函数,属性

var message =
  SaferHTML`<p>${bonk.sender} has sent you a bonk.</p>`;

上面其实等价于

var message =
  SaferHTML(templateData, bonk.sender);

templateData是由模板字符串内${}表达式分隔的字符串的数组,上面的templateData等价于Object.freeze(["<p>", " has sent you a bonk.</p>"]

SafeHtml函数实现如下:

function SaferHTML(templateData) {
  var s = templateData[0];
  for (var i = 1; i < arguments.length; i++) {
    var arg = String(arguments[i]);

    // Escape special characters in the substitution.
    s += arg.replace(/&/g, "&")
            .replace(/</g, "<")
            .replace(/>/g, ">");

    // Don't escape special characters in the template.
    s += templateData[i];
  }
  return s;
}

相关文章

  • ES6模版字符串

    初探ES6:字符串模板 && 标签模板 关键词:``,${} 字符串模板: 在ES6之前我们要在html或者con...

  • 21.模板字符串和标签模板字符串

    ES6新增了模板字符串,用于字符串拼接 ES6新增了标签字符串 标签模板字符串执行结果: 函数的第一个参数为数组,...

  • ES6常用新特性

    ES6新特性介绍 模板字符串 模板字符串实现字符串拼接 模板字符串实现多行字符串 结构赋值 对象的解构赋值 数组的...

  • ES6学习笔记

    ES6学习笔记之字符串模板 对运算的支持let a=1;let b=2;let result=${a+b};doc...

  • TypeScript字符串新特性

    多行字符串 1. 多行字符串 其中 `` 用来定义 ES6 中的模板字符串,${expr} 用来在模板字符串中嵌...

  • es6、es7常用特性

    1、模板字符串模板字符串 不使用ES6 使用+号降变量拼接喂字符串 例:var name ='My name is...

  • ES6入门用法&字符串模板

    字符串模板 传统的JavaScript的输出模板是 ES6引入了模板字符串来解决这个问题 用反引号(`)来标识

  • 【基础知识】消除ES6模板字符串中的空格

    转:消除ES6模板字符串中的空格 在开发中经常要用模板字符串,在拼接HTML文件时会遇到模板字符串中的空格问题比如...

  • (五)ES6字符串模板箭头函数字面量

    本节知识点 字符串模板 箭头函数 字面量 字符串模板 在ES6里面字符串模板就是为了不用再把字符串拼接起来,省的有...

  • ES6 模板字符串

    为了能够让我们更加方便的拼接,操作字符串,ES6出了模板字符串。 模板字符串是用`反引号代替常规字符串的'单引号或...

网友评论

      本文标题:ES6 笔记 模板字符串

      本文链接:https://www.haomeiwen.com/subject/capabttx.html