Node.js 4.0.0 新特性:模板字符串(Template Strings)
撰写于 2015年9月13日 修改于 2021年3月11日 分类 编程杂记 views
前两天新发布的 Node.js 4.0.0 稳定版,总算让 Node.js 用上了新的 V8 4.5,也使得 V8 中的 ECMAScript 6 新特性终于来到了 Node.js,除了引入注目的类型数据、箭头函数一类,还有个模板字符串(Template Strings),使得广大 Node.js 程序员可以用原生的方法来进行相对复杂的字符串处理了。
蛮荒时代
在以前,如果要处理一个多行的字符串,你得:
1 | // \\n 是为了高亮插件的显示,实际应为 \n |
当然,老成一点的,还知道可以用数组进行组合。
1 | console.log(['鹅,鹅,鹅,', |
那如果要在字符串中插入变量呢?
1 | var person = {name: 'Sid', location: 'Shanghai'}; |
或者这样:
1 | console.log('person:', person, 'is here'); |
没错,一个都没让人省心。
闪亮登场
模板字符串出场了,它就是为了解决上面这些问题。与变通字符串使用单双引号来包裹值不一样,模板字符串用的是’`‘,可以随意组织多行数据而不加入任何特殊符号,比如:
1 | console.log(` 鹅,鹅,鹅, |
既然称之为模板,当然也就具有模板的一些功能:
1 | var nameHe = 'Li Lei', nameShe = 'Han Meimei'; |
还可以直接执行表达式:
1 | var intA = 10; |
此外,可以组织一个函数,来专门处理模版字符串,类似于这样:
1 | function taggedTS() { |
注意,虽然看起来像个普通的函数,但在调用的时候,不能使用括号,而是直接用函数名加模板字符串的方式。传入的参数,分为两部分,第一个是被动态的值所分隔的多个字符串,后面是对应的各个动态值的计算结果。
安全问题
与SQL注入一样,如果要把用户的输入直接作为模板字符串的内容,务必先进行仔细的检查,因为恶意的输入者,可能会通过猜测变量名,来获取你程序中比较危险的值。