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 限制输入和粘贴(IE,firefox测试通过)
Nov 14 Javascript
图片动画横条广告带上下滚动的JS代码
Oct 25 Javascript
jquery toolbar与网页浮动工具条具体实现代码
Jan 12 Javascript
Js实现简单的小球运动特效
Feb 18 Javascript
高效利用Angular中内置服务$http、$location等
Mar 22 Javascript
Bootstrap进度条组件知识详解
May 01 Javascript
BootstrapValidator不触发校验的实现代码
Sep 28 Javascript
JS实现图片预加载之无序预加载功能代码
May 12 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
Sep 13 Javascript
angularjs实现猜数字大小功能
May 20 Javascript
Vue动态路由缓存不相互影响的解决办法
Feb 19 Javascript
vue修改Element的el-table样式的4种方法
Sep 17 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
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
js实现照片墙功能实例
2015/02/05 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
vue实现拖拽效果
2019/12/23 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
大二自我鉴定范文
2013/10/05 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
个人承诺书怎么写
2014/05/24 职场文书
三严三实学习心得体会
2014/10/13 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
食堂管理制度范本
2015/08/04 职场文书