string和template literals有什么区别
时间: 2023-08-05 08:09:16 浏览: 61
在 JavaScript 中,字符串可以使用两种方式表示:使用单引号(')或双引号(")括起来的普通字符串,以及使用反引号(`)括起来的模板字面量(template literals)。这两种方式有以下区别:
1. 插值:模板字面量允许在字符串中插入表达式或变量,使用`${}`语法进行插值。例如:
```javascript
var name = "Alice";
var greeting = `Hello, ${name}!`; // 使用模板字面量插入变量
console.log(greeting); // 输出:Hello, Alice!
```
而普通字符串需要使用字符串拼接符(+)来连接变量和字符串:
```javascript
var name = "Alice";
var greeting = "Hello, " + name + "!"; // 使用字符串拼接连接变量
console.log(greeting); // 输出:Hello, Alice!
```
2. 多行文本:模板字面量支持多行文本,可以直接在字符串中换行,而不需要使用转义字符或字符串拼接符。例如:
```javascript
var message = `This is a
multi-line
text.`;
console.log(message);
// 输出:
// This is a
// multi-line
// text.
```
普通字符串需要使用转义字符(\n)来表示换行:
```javascript
var message = "This is a\n" +
"multi-line\n" +
"text.";
console.log(message);
// 输出:
// This is a
// multi-line
// text.
```
总的来说,模板字面量提供了更方便的语法来处理字符串插值和多行文本,使代码更易读和维护。