es6模板语法使用上的一点问题

var str = "test";

console.log(str); // test

console.log(`str`) //str 这里的str是模板语法里面的,而不是变量str

console.log(`${str}`);  //模板语法引入变量str,   输出 test

console.log(`'${str}'`); /输出 'test';

这个问题是今天使用sql的时候发现的,

`INSERT INTO user (id, username, password) VALUES (0, ${req.body.username}, ${req.body.password})`
 
上面这样最后的结果是类似于  INSERT INTO user (id, username, password) VALUES (0, username, password)    这种结果
 
正确的做法应该是 INSERT INTO user (id, username, password) VALUES (0, ‘${req.body.username}’, ‘${req.body.password}’)
 
这样输出的才是  INSERT INTO user (id, username, password) VALUES (0, 'username', 'password')
 
也就是说在模板当中,虽然你传入的变量是字符串,但是在模板当中解析的是不带引号的,需要引号还需要另外加
原文地址:https://www.cnblogs.com/kugeliu/p/7131688.html