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 相关文章推荐
给Javascript数组插入一条记录的代码
Aug 30 Javascript
DHTML Slide Show script图片轮换
Mar 03 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
Feb 23 Javascript
JS清空多文本框、文本域示例代码
Feb 24 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
Jul 09 Javascript
JavaScript简单计算人的年龄示例
Apr 15 Javascript
微信小程序开发中的疑问解答汇总
Jul 03 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
Jan 16 Javascript
Vue自定义指令实现checkbox全选功能的方法
Feb 28 Javascript
JS操作json对象key、value的常用方法分析
Oct 29 Javascript
Javascript数组及类数组相关原理详解
Oct 29 Javascript
JS Object构造函数之Object.freeze
Apr 28 Javascript
解决淘宝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
php和javascript之间变量的传递实现代码
2012/12/19 PHP
yii中widget的用法
2014/12/03 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
php 二维数组快速排序算法的实现代码
2017/10/17 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
javascript 自定义事件初探
2009/08/21 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
使用Python生成XML的方法实例
2017/03/21 Python
django中的setting最佳配置小结
2017/11/21 Python
解决python升级引起的pip执行错误的问题
2018/06/12 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
webapp字号大小跟随系统字号大小缩放的示例代码
2018/12/26 HTML / CSS
2014年大学教师工作总结
2014/12/02 职场文书
会议欢迎词范文
2015/01/27 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python