前军教程网

中小站长与DIV+CSS网页布局开发技术人员的首选CSS学习平台

ES 6的模板字面量(es6模板字符串)

模板字面量(Template Literals)

ECMAScript 6引入了模板字面量,对字符串的操作进行了增强方式:

  • 多行字符串

真正的多行字符串。

  • 字符串占位符

可以将变量或JavaScript表达式嵌入到占位符中并将其作为字符串的一部分输出到结果中。

多行字符串

模板字面量的基础语法就是用反引号(`)来替换字符串的单、双引号,例如:

let message = `Hello World`;

这句代码使用模板字面量语法创建了一个字符串,并赋值给message变量,这时变量的值与一个普通的字符串并无差异。

如果想要在字符串中使用反引号,那么用反斜杠(\)将它转义即可,如下所示:

let message = `Hello\` World`;

在模本字面量中,不需要转义单、双引号。

在ECMAScript 5中,如果一个字符串字面量要分为多行书写,那么可以采用两种方式来实现:在一行结尾的时候添加斜杠(\)表示承接下一行的代码,或者使用加号(+)来拼接字符串,如下所示:

let message = "Hello \

World";


let greeting = "Welcome"

+ " you";

console.log(message);

console.log(greeting);

这两种实现方式,前者是利用JavaScript的语法bug来实现,后者是利用字符串的拼接操作来实现。当把字符串message和greeting打印到控制台时,这两个字符串均未进行显示,前者使用反斜杠(\)只是代表行的延续,并未真正插入新的一行。如果要输出新的一行,需要手动加入换行符,如下所示:

let message = "Hello \n\

World";


let greeting = "Welcome"

+ "\n"

+ " you";

console.log(message);

console.log(greeting);

在ECMAScript 6中,使用模板字面量语法,可以很方便地实现多行字符串的创建。如果需要在字符串中添加新的一行,只需要在代码中直接换行即可,如下所示:

let message = `Hello

World`;


console.log(message);

输出结果如下:

Hello

World

要注意:在反引号中的所有空白字符(包括但不限于空格、换行、制表符)都属于字符串的一部分。

字符串占位符

在一个模板字面量中,可以将JavaScript变量或者任何合法的JavaScript表达式嵌入到占位符中并将其作为字符串的一部分输出到结果中。

占位符由一个左侧的 ${ 和右侧的 } 符号组成,中间可以包含变量或JavaScript表达,例如:

let name = "zhangsan";

let message =`Hello, ${name}`;

console.log(message);


let amount = 5;

let price = 86.5;

let total = `The total price is ${price * amount}`;

console.log(total);

模板字面量本身也是JavaScript表达式,因此也可以在一个模板字面量中嵌入另一个模板字面量,如下所示:

let name = "lisi";

let message = `Hello, ${

`my name is ${name}`

}.`;


console.log(message); //输出:Hello, my name is lisi.


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言