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 相关文章推荐
AJAX使用了UpdatePanel后无法使用alert弹出脚本
Apr 02 Javascript
js实现双向链表互联网机顶盒实战应用实现
Oct 28 Javascript
JS跨域总结
Aug 30 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
Nov 23 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
深入理解JavaScript定时机制
Oct 27 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
Mar 13 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
Feb 24 Javascript
小程序点击图片实现自动播放视频
May 29 Javascript
基于JS实现table导出Excel并保留样式
May 19 Javascript
typescript配置alias的详细步骤
Aug 12 Javascript
微信小程序实现底部弹出模态框
Nov 18 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
mysql 搜索之简单应用
2007/04/27 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
15个非常实用的JavaScript代码片段
2016/12/18 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
2017/12/12 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
详解django三种文件下载方式
2018/04/06 Python
对命令行模式与python交互模式介绍
2018/05/12 Python
python实现图书借阅系统
2019/02/20 Python
django框架auth模块用法实例详解
2019/12/10 Python
查看jupyter notebook每个单元格运行时间实例
2020/04/22 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
python 下载m3u8视频的示例代码
2020/11/11 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
css3实现超炫风车特效
2014/11/12 HTML / CSS
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
电子商务专业个人的自我评价分享
2013/10/29 职场文书
招商经理岗位职责
2013/11/16 职场文书
房地产销售经理岗位职责
2014/01/01 职场文书
美术教师自我鉴定
2014/02/12 职场文书
总经理的岗位职责
2014/02/23 职场文书
《红军不怕远征难》教学反思
2014/04/14 职场文书
毕业生实习证明
2014/09/19 职场文书
详解ZABBIX监控ESXI主机的问题
2022/06/21 Servers