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 相关文章推荐
Ajax::prototype 源码解读
Jan 22 Javascript
基于jquery的气泡提示效果
May 31 Javascript
JSON为什么那样红为什么要用json(另有洞天)
Dec 26 Javascript
jquery选择器的选择使用及性能介绍
Jan 16 Javascript
提高jQuery性能优化的技巧
Aug 03 Javascript
js图片轮播效果实现代码
Apr 18 Javascript
node.js从数据库获取数据
May 08 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
May 09 Javascript
Node.js五大应用性能技巧小结(必须收藏)
Aug 09 Javascript
js实现简单进度条效果
Mar 25 Javascript
Openlayers实现测量功能
Sep 25 Javascript
JS开发前端团队展示控制器来为成员引流
Aug 14 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
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
js实现继承的方法及优缺点总结
2019/05/08 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
[02:10]DOTA2亚洲邀请赛 EG战队出场宣传片
2015/02/07 DOTA
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python中super关键字用法实例分析
2015/05/28 Python
python批量创建指定名称的文件夹
2019/03/21 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
对django layer弹窗组件的使用详解
2019/08/31 Python
python返回数组的索引实例
2019/11/28 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
keras得到每层的系数方式
2020/06/15 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
南京迈特望C/C++面试题
2012/07/09 面试题
技校毕业生个人学习的自我评价
2014/02/21 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
中国好声音华少广告词
2014/03/17 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
班级班风口号大全
2015/12/25 职场文书