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实现的抽象CSS圆角效果!!
May 03 Javascript
JScript 脚本实现文件下载 一般用于下载木马
Oct 29 Javascript
javascript学习之闭包分析
Dec 02 Javascript
客户端限制只能上传jpg格式图片的js代码
Dec 09 Javascript
浏览器兼容的JS写法总结
Apr 27 Javascript
全面了解构造函数继承关键apply call
Jul 26 Javascript
seajs学习之模块的依赖加载及模块API的导出
Oct 20 Javascript
WEB 前端开发中防治重复提交的实现方法
Oct 26 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
Feb 24 Javascript
详解webpack编译速度提升之DllPlugin
Feb 05 Javascript
layui table 获取分页 limit的方法
Sep 20 Javascript
vue实现单一筛选、删除筛选条件
Oct 26 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
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
2016/10/29 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
wordpress之js库集合研究介绍
2007/08/17 Javascript
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
js实现放大镜特效
2017/05/18 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
解决pyttsx3无法封装的问题
2018/12/24 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
柯基袜:Corgi Socks
2017/01/26 全球购物
50道外企软件测试面试题
2014/08/18 面试题
出纳岗位职责
2013/11/09 职场文书
商场总经理岗位职责
2014/02/03 职场文书
GMP办公室主任岗位职责
2014/03/14 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书