购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3.3 模板字符串使用语法

当我们使用普通的字符串时,我们会使用单引号或双引号来包裹字符串的内容。而ES2015的模板字符串则需要使用 反勾号(backtick,`)

3.3.3.1 支持字符串元素注入

与Swift中的使用方法类似,我们同样可以将一些元素注入到ES2015 的模板字符串中。

3.3.3.2 支持换行

在现代JavaScript应用的开发中,我们经常会遇见对多行字符串进行处理的需求,如SQL字符串。

或者如下所示。

就如上面我们所说的,这样的写法实际上非常不“干净”,而模板字符串终于允许我们可以以一种非常简单的方式来表达多行字符串了。

在Node.js应用的实际开发中,诸如SQL的编写,还有如Lua等嵌入语言(如Redis中的SCRIPT命令)的出现,或是手工的XML拼接这样的需求非常多,而模板字符串的出现使这些需求的解决变得轻松。

在ECMAScript对字符串的定义中,有以下一些字符字面量,通常用于非打印或特殊用途的字符,如表 3.3 所示。

表 3.3 字符字面量对应关系

而现在因为模板字符串的引入,添加了 \` 用于打印 `。

多行模板字符串会在每一行的最后添加一个“\n”字面量,相当于使用LF换行符(在普遍使用CRLF换行符的Windows系统中,最新的Microsoft Edge浏览器同样是使用LF换行符)。所以在读取多行字符串的长度时,除最后一行以外,每一行的长度都会加 1,即增加了“ \n ”的长度。

CRLF和LF是目前计算机科学中最为常用的两种换行符的格式,CRLF换行符(\r\n)主要在以Windows操作系统为中心的生态圈中被使用,而LF换行符(\n)主要在以*nix(Unix/Linux)操作系统为中心的生态圈中被使用。

其中CRLF换行符与LF换行符的区别在于,CRLF较LF多一个回车字面量(CR,CarriageReturn,\r),CRLF的历史比LF要久远,CRLF的历史可以追溯到 16 世纪使用机械打字机的时代。当时受限于技术的发展程度,在每一行结束时,需要将承载装纸滚筒的机架(Carriage)拨回到最右边,以便令印字位置对准每一行的开头,同时顺便转动滚筒,换至下一行,这便是 回车 。这一传统一直延续到了电子计算机中,换行符的电子符号 (\u21b5)的图像意义便是印字位置的移动。但出于对计算机存储容量和传输成本的考虑,人们将CRLF中的CR省略,剩下一个LF来代表一行的结束和新一行的开始(在CRLF中,CR表示的是一行的结束)。 VocnjgYMQwo+jIEV+7+FzIWEkcUEr/oXQQejKq2qvpzD/nk3HXNc/F2zS9aQlelp

点击中间区域
呼出菜单
上一章
目录
下一章
×