相比ES5的拼接字符串,ES6毫无疑问是简单明了,又清晰可维护。原始的字符串拼接真的是把整个人都拼傻,并且在处理的过程中会出现很多小坑,小问题。

$('#ulList').html(`<ul><li>浙江</li><li>杭州</li></ul>
`);

上面就是用es6的模板字符串``的写法,用反引号(`)标识。如果想拼接变量的话用${ },还可以嵌套使用,模板字符串中还可以嵌套另一个模板字符串。

$('#ulList').html(`<ul><li>${data.province}</li><li>${data.city}</li></ul>
`);//嵌套模板字符串
const tmpl = addrs => `<table>${addrs.map(addr => `<tr><td>${addr.first}</td></tr><tr><td>${addr.last}</td></tr>`).join('')}</table>
`;

上面的代码就是拼接变量,用${data.province}替换了+ ' data.province ' +

这都很简单,但在项目中的需求有的时候想在字符串拼接里面写入循环啊、函数啊之类的,

首先呢,大括号里支持任何表达式的,可以三目,可以调用函数,同样可以引用对象属性

let x = 1;
let y = 2;`${x} + ${y} = ${x + y}`
// "1 + 2 = 3"`${x} + ${y * 2} = ${x + y * 2}`
// "1 + 4 = 5"let obj = {x: 1, y: 2};
`${obj.x + obj.y}`
// "3"//调用函数
function fn() {return "大连";
}`I come from ${ fn() }`
//I come from 大连

在模板字符串中怎么写循环呢?ES6声明了一个模板编译的说法,该模板使用<%...%>放置 JavaScript 代码,使用<%= ... %>输出 JavaScript 表达式。上代码

let template = `
<ul><% for(let i=0; i < data.supplies.length; i++) { %><li><%= data.supplies[i] %></li><% } %>
</ul>
`;

函数写法

let script =
`(function parse(data){let output = "";function echo(html){output += html;}${ template }return output;
})`;return script;

详解还是要看阮一峰大佬的书,里面有ES6对字符串的详解。我这只是对模板字符串的简单介绍

http://es6.ruanyifeng.com/#docs/string  向大佬学习。

ES6模板字符串(循环、函数)相关推荐

  1. 后端字段为null,前端使用ES6模板字符串进行展示

    项目需求:后端字段为null,前端使用ES6模板字符串展示为空 未处理前效果: // ES6的模板字符串可写表达式<template #default="{ row }"&g ...

  2. [ 前端开发 ] ES6模板字符串

    ES6模板字符串 模板字符串是 ES6 的新特性,他的作用是减少了字符串的拼接操作,提高了程序的可读性 接下来看一个栗子

  3. 高级JavaScript #ES6(模板字符串,let,箭头函数,forof,参数增强,解构,class,promise)

    模板字符串 1.模板字符串: 只要拼接字符串 都用模板字符串代替+a.整个字符串包裹在一对儿反引号 ` ` 中b.反引号``中支持换行 c.反引号中需要动态生成的内容必须放在${}里d. ${}里: ...

  4. ES6(二)——字符串模板、标签模板字符串、函数的默认参数、剩余参数、数组对象的展开语法、数值的表示、Symbol

    一.字符串模板基本使用 在ES6之前,如果我们想要将字符串和一些动态的变量(标识符)拼接到一起,是非常麻烦和丑陋的(ugly). ES6允许我们使用字符串模板来嵌入JS的变量或者表达式来进行拼接: 首 ...

  5. es6模板字符串中循环遍历数据踩坑

    应该很少有这种需求,需要在模板字符串利循环遍历数据,现在框架都有自己模板语法. 我这里踩的坑是,我在模板字符串中用forEach,map遍历循环时,返回值一直是一个undefined 用for循环re ...

  6. 重学ES6 模板字符串

    在两三年前,jQuery还是比较主流的开发技术,当我们要为页面添加DOM时,一般,我们是这样写的 $("#container").append('Today is <b> ...

  7. js es6 模板字符串和使用

    模板字符串描述: 模板字符串使用反引号 (``) 来代替普通字符串中的用双引号和单引号.模板字符串可以包含特定语法(${expression})的占位符.占位符中的表达式和周围的文本会一起传递给一个默 ...

  8. ES6 模板字符串 ``

    参考原文链接 1. 使用JavaScript输出字符串,通常是下面这样的: console.log("He is <b>"+person.name+"< ...

  9. ES6模板字符串【${}配合反单引号一起用】

    转自: https://www.cnblogs.com/shihuc/p/10238511.html 先看看JavaScript中两个字符串的效果,就很容易知道模板字符串是个啥东西,其实一点也不新鲜. ...

  10. ES6模板字符串的扩展

    1.模板字符串的扩展 1.1传统的Jquery方法 <div class="content"></div><script>let name = ...

最新文章

  1. 0x16.基本数据结构 — Trie树(字典树)+ A C 自 动 机
  2. java程序设计输入输出实验_20145320《Java程序设计》第五次实验报告
  3. 35岁之后,你还会继续写代码吗?
  4. Java8新特性Stream API与Lambda表达式详解(1)
  5. win8 查看 linux硬盘大小,如何查看显存大小_win8如何查看显存大小
  6. Qt Quick入门
  7. 整理一些提高C#编程性能的技巧
  8. 杀掉僵尸 MapReduce 任务的两种方式
  9. jquery2.1.1 checkbox
  10. 使用delphi 开发多层应用(十六)使用XMLRPC 实现basic4android 远程调用RTC服务
  11. 变结构滑模控制抖振处理(1)------动态滑模法
  12. Java Filter——敏感词汇过滤
  13. 瑞星个人防火墙万能序列号ID号
  14. Linux学习16-磁盘分区MSDOS与GPT的区别
  15. 每单外卖利润不足2毛钱 强行降佣只是饮鸩止渴?
  16. 乒乓球侧旋球MATLAB,【动图】看动图让你了解乒乓球的侧旋转
  17. Ubuntu 编译ijkplayer 支持几乎所有格式(MP4,mov,mkv,avi,wmv,m4v,mpg,webm,ogv,3g2.flv,f4v,swf)和https
  18. 内容推荐场景下多模态语义召回的若干实践
  19. 加速度计和陀螺仪模型(imu元件)分析
  20. python实现秒表计时器

热门文章

  1. python文件夹排序笔记
  2. 计算机混合运算java,大话Java混合运算规则
  3. 第四届CCF计算机职业资格认证考试题解(C++)
  4. gin框架自带的一些的鉴定权限机制 session cookie
  5. Win10专业版永久激活
  6. CEC2018:动态多目标测试函数DF6~DF9的PS及PF
  7. Memcached是什么,有什么作用?
  8. 手机壁纸尺寸android,APP设计手抄:5点安卓手机尺寸分辨率知识
  9. Liunx(一)VMware虚拟机安装学习--Liunx学习的准备
  10. NEFU锐格实验一[字符串]