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新手语法小结
Jun 15 Javascript
[原创]js获取数组任意个不重复的随机数组元素
Mar 15 Javascript
Javascript string 扩展库代码
Apr 09 Javascript
UI Events 用户界面事件
Jun 27 Javascript
js post提交调用方法
Feb 12 Javascript
javascript设计模式之解释器模式详解
Jun 05 Javascript
JavaScript Math.floor方法(对数值向下取整)
Jan 09 Javascript
JavaScript实现简单的tab选项卡切换
Jan 05 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
Jan 08 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 jQuery
使用JavaScript实现一个小程序之99乘法表
Sep 21 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
Apr 15 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关联数组快速排序的方法
2015/04/17 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
javascript 正则替换 replace(regExp, function)用法
2010/05/22 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
javascript实现博客园页面右下角返回顶部按钮
2015/02/22 Javascript
基于node实现websocket协议
2016/04/25 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
详细介绍Python语言中的按位运算符
2013/11/26 Python
wxPython窗口的继承机制实例分析
2014/09/28 Python
python中的编码知识整理汇总
2016/01/26 Python
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
Python模块结构与布局操作方法实例分析
2017/07/24 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
关于python pycharm中输出的内容不全的解决办法
2020/01/10 Python
Python Json数据文件操作原理解析
2020/05/09 Python
浅谈Python协程
2020/06/17 Python
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
商场拾金不昧表扬信
2014/01/13 职场文书
草船借箭教学反思
2014/02/03 职场文书
大学生个人求职口试自我评价
2014/02/16 职场文书
mysql部分操作
2021/04/05 MySQL
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
总结Pyinstaller打包的高级用法
2021/06/28 Python