ES6模板字符串和标签模板的应用实例分析


Posted in Javascript onJune 25, 2019

本文实例讲述了ES6模板字符串和标签模板的应用。分享给大家供大家参考,具体如下:

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

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

let hello = 'Hello';
let html = '<div>' +
 '<span>'+ hello +'</span>' +
 '</div>';
console.log(html); // <div><span>Hello</span></div>

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

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

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

关于标签模板

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

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(/</g, '<').replace(/>/g, '>');
  if(i < arguments.length -1) {
   res += arguments[i + 1];
  }
 }
 return res;
}
let name = 'Joh';
var result = safe`<p>hello ${name}</p>`;
console.log(result); // <p>hello Joh</p>

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
侧栏跟随滚动的简单实现代码
Mar 18 Javascript
node.js中的console.timeEnd方法使用说明
Dec 09 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
Dec 16 Javascript
js鼠标点击图片切换效果代码分享
Aug 26 Javascript
validationEngine 表单验证插件使用实例代码
Jun 15 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
Jul 24 Javascript
vue学习教程之带你一步步详细解析vue-cli
Dec 26 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
Feb 05 Javascript
JavaScript中 ES6变量的结构赋值
Jul 10 Javascript
layui radio性别单选框赋值方法
Aug 15 Javascript
关于自定义Egg.js的请求级别日志详解
Dec 12 Javascript
JavaScript&quot;模拟事件&quot;的注意要点详解
Feb 13 Javascript
基于Node.js搭建hexo博客过程详解
Jun 25 #Javascript
Node.js实现简单的爬取的示例代码
Jun 25 #Javascript
浅谈目前可以使用ES10的5个新特性
Jun 25 #Javascript
vue 移动端注入骨架屏的配置方法
Jun 25 #Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
Jun 25 #Javascript
新手快速入门微信小程序组件库 iView Weapp
Jun 24 #Javascript
前端Vue项目详解--初始化及导航栏
Jun 24 #Javascript
You might like
ajax完美实现两个网页 分页功能的实例代码
2013/04/16 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
为数据添加append,remove功能
2006/10/03 Javascript
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
子页向父页传值示例
2013/11/27 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
Javascript简写条件语句(推荐)
2016/06/12 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
js实现碰撞检测
2021/01/29 Javascript
Python中%r和%s的详解及区别
2017/03/16 Python
在Python中画图(基于Jupyter notebook的魔法函数)
2019/10/28 Python
pytorch ImageFolder的覆写实例
2020/02/20 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
10条PHP编程习惯
2014/05/26 面试题
旅游业大学生创业计划书
2014/01/31 职场文书
财务部总监岗位职责
2014/03/12 职场文书
装修协议书范本
2014/04/21 职场文书
绿色出行口号
2014/06/18 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
导游词400字
2015/02/13 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
MySQL约束超详解
2021/09/04 MySQL
Java设计模式中的命令模式
2022/04/28 Java/Android