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 相关文章推荐
JavaScript中使用concat()方法拼接字符串的教程
Jun 06 Javascript
浅谈jQuery中height与width
Jul 06 Javascript
深入理解JS正则表达式---分组
Jul 18 Javascript
JavaScript表单验证开发
Nov 23 Javascript
详解基于angular路由的requireJs按需加载js
Jan 20 Javascript
JavaScript模块化之使用requireJS按需加载
Apr 12 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
Apr 14 Javascript
解决Vue编译时写在style中的路径问题
Sep 21 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
Aug 20 Javascript
深入理解Vue keep-alive及实践总结
Aug 21 Javascript
如何在JavaScript中等分数组的实现
Dec 13 Javascript
vue选项卡切换的实现案例
Apr 11 Vue.js
基于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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
php 页面执行时间计算代码
2008/12/04 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
python实现html转ubb代码(html2ubb)
2014/07/03 Python
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
Django实现随机图形验证码的示例
2020/10/15 Python
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
酒店服务实习自我鉴定
2013/09/22 职场文书
会计实习期自我鉴定
2013/10/06 职场文书
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
员工薪酬福利制度
2014/01/17 职场文书
平面设计求职信
2014/03/10 职场文书
党员个人剖析材料(四风问题)
2014/10/07 职场文书
酒店辞职书范文
2015/02/26 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书
环保建议书作文300字
2015/09/14 职场文书
创业计划书之花店
2019/09/20 职场文书
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server