Javascript 字符串模板中的三元运算符

Javascript 字符串模板中的三元运算符,javascript,ecmascript-6,Javascript,Ecmascript 6,有一种紧凑的方法可以使用如下可选参数构建字符串 let q = `CREATE "a" ${this.date ? ` SET date = '${this.date}'` : ''} ${this.description ? ` SET description = '${this.description}'` : ''} RETURN n`; 如果没有该else大小写,则返回空字符串' 编辑:当前结果为: CREATE

有一种紧凑的方法可以使用如下可选参数构建字符串

let q = `CREATE "a"
            ${this.date ? ` SET date = '${this.date}'` : ''}
            ${this.description ? ` SET description = '${this.description}'` : ''}
            RETURN n`;
如果没有该
else
大小写,则返回空字符串
'

编辑:当前结果为:

CREATE "a"


RETURN n
这只是一个美学问题,我宁愿不要那些空行


使用布尔运算符
&&
不起作用(它将
未定义的
作为字符串返回):


您可以使用条件和值| | |“”,但这几乎等同于使用三元运算符

另一个可用选项是在此处尝试标记的模板,以丢弃空值:

let日期;
让description=“description”;
函数非空(部分){
var res=零件[0];

对于(var i=1;iI如果你不想要空字符串,你还希望得到什么?你可以使用一个助手函数来做你想做的事情。如果是我,我会单独为你创建条件子字符串readability@alfredopacino无论查询语言是什么,您仍然需要转义。为什么不使用类似于?@alfredpacino转义的东西呢对于正确性和安全性,是的。不用于生产并不重要,只要不做错事就行了。几乎相当,但更糟糕的是,是的。模板标记是一个很好的建议,尽管你根本不需要使用
&&&
。好的一点@bergi与模板标记我们不需要添加&&,相应地更正了答案,谢谢
${this.date && ` SET date = '${this.date}'`}