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 相关文章推荐
jQuery 操作option的实现代码
Mar 03 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
Aug 29 Javascript
js arguments对象应用介绍
Nov 28 Javascript
js控制页面控件隐藏显示的两种方法介绍
Oct 09 Javascript
Jquery性能优化详解
May 15 Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 Javascript
JavaScript数据结构与算法之栈详解
Mar 12 Javascript
js获取鼠标位置实例详解
Dec 09 Javascript
详解JavaScript的另类写法
Apr 11 Javascript
Angular4表单验证代码详解
Sep 03 Javascript
小试SVG之新手小白入门教程
Jan 08 Javascript
node.js实现上传文件功能
Jul 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网页后退不再出现过期
2007/03/08 PHP
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
JAVASCRIPT 对象的创建与使用
2021/03/09 Javascript
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
[01:59]DOTA2首部纪录片《Free to play》预告片
2014/03/12 DOTA
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
Python动态加载模块的3种方法
2014/11/22 Python
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
python 用下标截取字符串的实例
2018/12/25 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
函数指针的定义是什么
2016/08/14 面试题
审计班子对照检查材料
2014/08/27 职场文书
实习单位推荐信
2015/03/27 职场文书
普通员工辞职信范文
2015/05/12 职场文书
感恩的心主题班会
2015/08/12 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书
python实现过滤敏感词
2021/05/08 Python
图文详解Nginx版本平滑升级方案
2021/09/15 Servers