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 相关文章推荐
比较简单的异步加载JS文件的代码
Jul 18 Javascript
实现点击列表弹出列表索引的两种方式
Mar 08 Javascript
网站404页面3秒后跳到首页的实例代码
Aug 16 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
Mar 27 Javascript
JavaScript数组常用方法
Mar 02 Javascript
js实现模拟计算器退格键删除文字效果的方法
May 07 Javascript
JS中innerHTML和pasteHTML的区别实例分析
Jun 22 Javascript
JS滚动到指定位置导航栏固定顶部
Jul 03 Javascript
基于jQuery Easyui实现登陆框界面
Jul 10 jQuery
Web技术实现移动监测的介绍
Sep 18 Javascript
js实现数组内数据的上移和下移的实例
Nov 14 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
Sep 18 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
php4的session功能评述(二)
2006/10/09 PHP
PHP实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
小议Javascript中的this指针
2010/03/18 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
jQuery编写网页版2048小游戏
2017/01/06 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
js实现下一页页码效果
2017/03/07 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
纯js实现隔行变色效果
2017/11/29 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
介绍一下.net和Java的特点和区别
2012/09/26 面试题
酒店出纳岗位职责
2013/12/29 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
网络编辑岗位职责
2014/03/18 职场文书
法人授权委托书
2014/09/16 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
2014财产信托协议书范本
2014/11/18 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
倡议书作文
2015/01/19 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书
golang中的空接口使用详解
2021/03/30 Python
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python
MySQL8.0的WITH查询详情
2021/08/30 MySQL
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle