概述

这两天在用sqlite重写网站的回复功能,npm上搜索sqlite,发现例子里使用的语法很奇特:

import SQL from 'sql-template-strings';
import sqlite from 'sqlite';
 
const db = await sqlite.open('./database.sqlite');
 
const book = 'harry potter';
const author = 'J. K. Rowling';
 
const data = await db.all(SQL`SELECT author FROM books WHERE name = ${book} AND author = ${author}`);

最后一行SQL为一个函数,后边跟的是es6新添加的字符串拼接模式,${}括号里边的内容可以是变量或者表达式.这样就很直观的完成了字符串拼接问题.

同样这种写法还支持多行字符串,例如:

var name = '小明';
var html=`
    <div class="info">
        <div>姓名:${name}</div>
        <!-- ... -->
    </div>
`;
$('.container').append(html);

总结

随着ECMAScript标准的完善,javascript变得越来越强大了,此次提到的拼接字符串方法以前在C#中见到过,虽然只是一个语法糖,但是这种感觉真的很美妙.