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 技巧大全(新手入门篇)
May 12 Javascript
js列举css中所有图标的实现代码
Jul 04 Javascript
Js+Flash实现访问剪切板操作
Nov 20 Javascript
获取select元素被选中的文本内容的js代码
Jan 29 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
May 27 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
Nov 25 Javascript
微信小程序 Nginx环境配置详细介绍
Feb 14 Javascript
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
vue cli 3.0 使用全过程解析
Jun 14 Javascript
react build 后打包发布总结
Aug 24 Javascript
JavaScript链式调用原理与实现方法详解
May 16 Javascript
JavaScript实现显示和隐藏图片
Apr 29 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 删除无限级目录与文件代码共享
2008/11/22 PHP
php按百分比生成缩略图的代码分享
2014/05/10 PHP
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
JS实现放烟花效果
2020/03/10 Javascript
在Python下进行UDP网络编程的教程
2015/04/29 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
Python类继承和多态原理解析
2020/02/05 Python
如何在C# winform中异步调用web services
2015/09/21 面试题
财务工作者先进事迹材料
2014/01/17 职场文书
办公室文员工作自我鉴定
2014/09/19 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
仰望星空观后感
2015/06/10 职场文书
婚礼家长致辞
2015/07/27 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python