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对表单操作2
Apr 06 Javascript
选择器中含有空格在使用示例及注意事项
Jul 31 Javascript
深入理解Javascript里的依赖注入
Mar 19 Javascript
$(document).ready(function() {})不执行初始化脚本
Jun 19 Javascript
js读写json文件实例代码
Oct 21 Javascript
JS 循环li添加点击事件 (闭包的应用)
Dec 10 Javascript
微信小程序 自定义对话框实例详解
Jan 20 Javascript
vue-star评星组件开发实例
Mar 01 Javascript
JavaScript分步实现一个出生日期的正则表达式
Mar 22 Javascript
详解json串反转义(消除反斜杠)
Aug 12 Javascript
JavaScript利用键盘码控制div移动
Mar 19 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
Nov 17 Vue.js
解决淘宝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导入导出CSV文件
2014/11/03 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
PHP7变量处理机制修改
2021/03/09 PHP
8款非常棒的响应式jQuery 幻灯片插件推荐
2012/02/02 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
Jquery AJAX POST与GET之间的区别
2013/11/14 Javascript
JS连连看源码完美注释版(推荐)
2013/12/09 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
vue中对象数组去重的实现
2020/02/06 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
[00:14]护身甲盾
2019/03/06 DOTA
python多线程编程中的join函数使用心得
2014/09/02 Python
python生成器表达式和列表解析
2016/03/10 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
Python 发送邮件方法总结
2020/08/10 Python
python Tornado框架的使用示例
2020/10/19 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
网游商务专员求职信
2013/10/15 职场文书
外贸英语专业求职信范文
2013/12/25 职场文书
活动总结怎么写啊
2014/05/07 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
田径运动会通讯稿
2015/07/18 职场文书
考研经验交流会策划书
2015/11/02 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL