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 获得绝对,相对位置的坐标方法
Feb 09 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
Jun 20 Javascript
原生JavaScript生成GUID的实现示例
Sep 05 Javascript
jquery实现图片上传前本地预览
Apr 28 jQuery
Angular2使用Angular CLI快速搭建工程(一)
May 21 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
Jun 12 Javascript
Vue实现路由跳转和嵌套
Jun 20 Javascript
详解vue前后台数据交互vue-resource文档
Jul 19 Javascript
node中Express 动态设置端口的方法
Aug 04 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
Jan 09 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
Sep 06 Javascript
开发Node CLI构建微信小程序脚手架的示例
Mar 27 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
php 删除cookie和浏览器重定向
2009/03/16 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
jquery表格内容筛选实现思路及代码
2013/04/16 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
js 时间函数应用加、减、比较、格式转换的示例代码
2013/08/23 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
vue解决弹出蒙层滑动穿透问题的方法
2018/09/22 Javascript
vue中轮训器的使用
2019/01/27 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
[00:10]神之谴戒
2019/03/06 DOTA
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
python装饰器的特性原理详解
2019/12/25 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
keras多显卡训练方式
2020/06/10 Python
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
新春联欢会主持词
2014/03/24 职场文书
干部作风建设工作总结
2014/10/29 职场文书
大学教师个人总结
2015/02/10 职场文书
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript