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 相关文章推荐
用js实现的页面关键字密度查询代码
Dec 27 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
Dec 10 Javascript
jQuery.holdReady()使用方法
May 20 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
Jun 05 Javascript
angularJS中$apply()方法详解
Jan 07 Javascript
教你使用javascript简单写一个页面模板引擎
May 05 Javascript
简介JavaScript中getUTCMonth()方法的使用
Jun 10 Javascript
js输出数据精确到小数点后n位代码
Jul 02 Javascript
AngularJS指令用法详解
Nov 02 Javascript
Vue 2.0入门基础知识之内部指令详解
Oct 15 Javascript
async/await优雅的错误处理方法总结
Jan 30 Javascript
Jquery ajax书写方法代码实例解析
Jun 12 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
帖几个PHP的无限分类实现想法~
2007/01/02 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
浅析javascript 定时器
2014/12/23 Javascript
js获取页面description的方法
2015/05/21 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
Python中的with...as用法介绍
2015/05/28 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
python 公共方法汇总解析
2019/09/16 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
Django 解决由save方法引发的错误
2020/05/21 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
TCP/IP中的TCP和IP分别承担什么责任
2012/04/21 面试题
银行优秀员工事迹
2014/02/06 职场文书
工作求职自荐信
2014/06/13 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
世界读书日的活动方案
2014/08/20 职场文书
高一数学教学反思
2016/02/18 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript