ES6之模版字符串的具体使用


Posted in Javascript onMay 17, 2018

最近在项目中使用了ES6的模版字符串,在这里加以总结。

1.之前我们也可以使用JavaScript输出模版字符串,通常是下面这样的:

$("#result").append(
    "He is <b>"+person.name+"</b>"+"and we wish to know his"+person.age+".That is all" 
    );

但是我们可以看到:这样的传统做法需要使用大量的“”(双引号)和 + 来拼接才能得到我们需要的模版。但是这样是十分不方便的。

于是ES6中提供了模版字符串,用`(反引号)标识,用${}将变量括起来。上面的例子可以用模版字符串写成下面这样:

$("#result").append(
  `He is <b>${person.name}</b>and we wish to know his${person.age}.that is all`
    );

这样的做法就简洁了很多,我们不需要再使用大量的""和+来拼接字符串和变量。

2. 当然,模版字符串可以引入变量,不使用变量也是可以的。如下所示:

` I am a man.`

` No matter what you do,

I trust you.`  

3. 我们还可以先定义变量,然后在模版字符串中嵌入变量:

var name="zzw";
` ${name},no matter what you do,
 I trust you.`

4.显然,由于反引号是模版字符串的标识,如果我们需要在字符串中使用反引号,我们就需要对其进行转义,如下所示:

`No matter\` what you do,
I trust you.`

5.注意:如果使用模版字符串表示多行字符串,所有的空格和缩进都会被保存在输出中!!

console.log( `No matter\` what you do,
 I trust you.`);

输出结果如下:

ES6之模版字符串的具体使用

6. 在${}中的大括号里可以放入任意的JavaScript表达式,还可以进行运算,以及引用对象属性。

var x=88;
var y=100;
console.log(`x=${++x},y=${x+y}`);

结果如下所示:

ES6之模版字符串的具体使用

7.更强大的是:模版字符串还可以调用函数:

function string(){
  return "zzw likes es6!";
}
console.log(`你想说什么?嗯,${string()}`);

结果如下所示:

ES6之模版字符串的具体使用

另外,如果函数的结果不是字符串,那么,将按照一般的规则转化为字符串:

function string(){
    return 666;
  }
  console.log(`你想说什么? 嗯,${string()}`);

结果如下所示:

ES6之模版字符串的具体使用

在这里,实际上数字666被转化成了字符串666.

8.如果在${}中的变量时没有命名的,那么会报错:

console.log(`你想说什么? 嗯,${string()}`);

在上面这句代码中,string()函数没有声明,于是报错:

ES6之模版字符串的具体使用

9.其实,我们还可以在${}中输入一个字符串,知识结果仍旧会返回一个字符串:

console.log(`你想说什么?嗯,${"其实我不是变量~"}`);

结果如下所示:

ES6之模版字符串的具体使用

10.如果希望引用模版字符串本身,可以像下面这样写:

let str="return"+"`Hello! ${name}`";
let func=new Function("name",str);
 console.log(func("zzw"));

结果如下:

ES6之模版字符串的具体使用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery中add()方法用法实例
Jan 08 Javascript
javascript中递归函数用法注意点
Jul 30 Javascript
js实现无缝滚动图
Feb 22 Javascript
Axios学习笔记之使用方法教程
Jul 21 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
Dec 15 Javascript
详解微信小程序与内嵌网页交互实现支付功能
Oct 22 Javascript
vue地址栏直接输入路由无效问题的解决
Nov 15 Javascript
js回文数的4种判断方法示例
Jun 04 Javascript
RxJS的入门指引和初步应用
Jun 15 Javascript
浅谈JavaScript 声明提升
Sep 14 Javascript
浅谈Vue static 静态资源路径 和 style问题
Nov 07 Javascript
jquery实现淡入淡出轮播图效果
Dec 13 jQuery
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
May 17 #Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
May 17 #Javascript
解决Mac安装thrift因bison报错的问题
May 17 #Javascript
Vue中的字符串模板的使用
May 17 #Javascript
快速解决brew安装特定版本flow的问题
May 17 #Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
May 17 #Javascript
通过一次报错详细谈谈Point事件
May 17 #Javascript
You might like
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
你一定会收藏的Nodejs代码片段
2016/02/04 NodeJs
javascript的 {} 语句块详解
2016/02/27 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
JavaScript array常用方法代码实例详解
2020/09/02 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
python将list转为matrix的方法
2018/12/12 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
干部培训自我鉴定
2014/01/22 职场文书
《兰亭集序》教学反思
2014/02/11 职场文书
税务会计岗位职责
2014/02/18 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
教师党员承诺书2015
2015/01/21 职场文书
质量保证书格式模板
2015/02/27 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
教师节感想
2015/08/11 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书