前言:看了MDN的官方文档,让我一个头两个大。可能又陷入了完美主义的陷阱:总是想一下子把关于某方面的知识全部看完,全部看懂。就像我本来只是想查看一下单词take,却把所有的关于take的短语看了一遍,结果一个没记住。有些用法可能从它诞生到以后被废弃都使用不到,花费时间在它上面没有任何意义。因此,我是想介绍一下它最基础,最核心的用法。其他不常用用法可能会一笔带过。
一、模板字符串
模板字符串是可以插入表达式的字符串字面量。
在ES6(ES2015)中引入,另外,它还可以具有多行文本,换句话说可以直接输出回车换行符。
1. 模板字符串和传统字符串比较
传统字符串字面量使用单引号''
或者双引号""
,如下所示
var str = 'hello world';
var str2 = "hello world";
模板字符串使用反单引号(backquote) ``
,如下所示
var str3 = `hello world`;
反单引号位置,如下图所示,英文输入状态下按下可输入
形式虽然有差别,但是作为字符串字面量本质上是完全等价的。
2. 模板字符串可以插入表达式 (重点)
语法如下
`${expression}`
简介:expression可以是任意常量、变量、函数调用。在${expression}前后,也可以有任意的其他合法的字符,例如`abc${expression}xyz`。最终,${expression} 会转化为字符串和前后的字符串拼接,如果有的话。
当没有字符串时,我们想打印一个对象的信息,只能通过字符串拼接。
var xiaoming = {
name: '小明',
age: 14,
sex: 'male'
};
var bio = 'name: ' + xiaoming.name + ', age: ' + xiaoming.age + ', sex: ' + 'male';
console.log(bio);
现在,只有三个属性,拼接字符串还可以介绍。但是,当对象的属性比较多时,拼接字符串就会很费时费力。这时,应该用模板字符串。
var xiaoming