Javascript 如何在添加字符串时添加If语句
你好 在追加字符串时,我对如何在循环中添加If语句感到困惑 这是我的密码Javascript 如何在添加字符串时添加If语句,javascript,Javascript,你好 在追加字符串时,我对如何在循环中添加If语句感到困惑 这是我的密码 html += '<tr><td></td>'+ '<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+ '<td>'+x.transactionType+'</td>'+ '<td>'+x.id+'&
html += '<tr><td></td>'+
'<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+
'<td>'+x.transactionType+'</td>'+
'<td>'+x.id+'</td>'+
'<td>'+if(x.description!=null){x.description}+'</td>'+
'<td>'+x.ref_no+'</td>'+
'<td class="align-right">'+x.debit+'</td>'+
'<td class="align-right">'+x.credit+'</td>'+
'<td class="align-right">'+val+'</td></tr>';
});
html+=''+
''+时刻(x.date\u at).format('MM/DD/YYYY')+''+
''+x.transactionType+''+
''+x.id+''+
''如果(x.description!=null){x.description}+''+
''+x.ref_no+''号+
''+x.借记卡+''+
''+x.信用证+''+
''+val+'';
});
然后我在IF部分得到一个语法错误。谢谢你的帮助。我已经有一段时间没有编写代码了,这就是为什么我有点困惑。你不能只在代码中的任何地方放置
if
语句。如果需要在该位置获得此功能,则需要使用三元If运算符?:
html += '<tr><td></td>'+
'<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+
'<td>'+x.transactionType+'</td>'+
'<td>'+x.id+'</td>'+
'<td>'+ (x.description!=null ? x.description : '')+'</td>'+
'<td>'+x.ref_no+'</td>'+
'<td class="align-right">'+x.debit+'</td>'+
'<td class="align-right">'+x.credit+'</td>'+
'<td class="align-right">'+val+'</td></tr>';
不能只在代码中的任何地方放置
if
语句。如果需要在该位置获得此功能,则需要使用三元If运算符?:
html += '<tr><td></td>'+
'<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+
'<td>'+x.transactionType+'</td>'+
'<td>'+x.id+'</td>'+
'<td>'+ (x.description!=null ? x.description : '')+'</td>'+
'<td>'+x.ref_no+'</td>'+
'<td class="align-right">'+x.debit+'</td>'+
'<td class="align-right">'+x.credit+'</td>'+
'<td class="align-right">'+val+'</td></tr>';
您可以使用以下类似的方法:
html += '<tr><td></td>'+
'<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+
'<td>'+x.transactionType+'</td>'+
'<td>'+x.id+'</td>';
if(x.description!=null) html+= '<td>' + {x.description} + '</td>';
html += '<td>'+x.ref_no+'</td>'+
'<td class="align-right">'+x.debit+'</td>'+
'<td class="align-right">'+x.credit+'</td>'+
'<td class="align-right">'+val+'</td></tr>';
});
html+=''+(x.description!=null?x.description:'')+''代码>
在代码中:
html += '<tr><td></td>'+
'<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+
'<td>'+x.transactionType+'</td>'+
'<td>'+x.id+'</td>'+
'<td>'+(x.description!=null ? x.description : '' )+'</td>'+
'<td>'+x.ref_no+'</td>'+
'<td class="align-right">'+x.debit+'</td>'+
'<td class="align-right">'+x.credit+'</td>'+
'<td class="align-right">'+val+'</td></tr>';
html+=''+
''+时刻(x.date\u at).format('MM/DD/YYYY')+''+
''+x.transactionType+''+
''+x.id+''+
''+(x.description!=null?x.description:'')+''+
''+x.ref_no+''号+
''+x.借记卡+''+
''+x.信用证+''+
''+val+'';
您可以这样使用:
html += '<tr><td></td>'+
'<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+
'<td>'+x.transactionType+'</td>'+
'<td>'+x.id+'</td>';
if(x.description!=null) html+= '<td>' + {x.description} + '</td>';
html += '<td>'+x.ref_no+'</td>'+
'<td class="align-right">'+x.debit+'</td>'+
'<td class="align-right">'+x.credit+'</td>'+
'<td class="align-right">'+val+'</td></tr>';
});
html+=''+(x.description!=null?x.description:'')+''代码>
在代码中:
html += '<tr><td></td>'+
'<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+
'<td>'+x.transactionType+'</td>'+
'<td>'+x.id+'</td>'+
'<td>'+(x.description!=null ? x.description : '' )+'</td>'+
'<td>'+x.ref_no+'</td>'+
'<td class="align-right">'+x.debit+'</td>'+
'<td class="align-right">'+x.credit+'</td>'+
'<td class="align-right">'+val+'</td></tr>';
html+=''+
''+时刻(x.date\u at).format('MM/DD/YYYY')+''+
''+x.transactionType+''+
''+x.id+''+
''+(x.description!=null?x.description:'')+''+
''+x.ref_no+''号+
''+x.借记卡+''+
''+x.信用证+''+
''+val+'';
我认为您只需要像这样中断连接:
html += '<tr><td></td>'+
'<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+
'<td>'+x.transactionType+'</td>'+
'<td>'+x.id+'</td>';
if(x.description!=null) html+= '<td>' + {x.description} + '</td>';
html += '<td>'+x.ref_no+'</td>'+
'<td class="align-right">'+x.debit+'</td>'+
'<td class="align-right">'+x.credit+'</td>'+
'<td class="align-right">'+val+'</td></tr>';
});
html+=''+
''+时刻(x.date\u at).format('MM/DD/YYYY')+''+
''+x.transactionType+''+
''+x.id+'';
如果(x.description!=null)html+=''+{x.description}+'';
html+=''+x.ref_no+''+
''+x.借记卡+''+
''+x.信用证+''+
''+val+'';
});
我认为您只需要像这样中断连接:
html += '<tr><td></td>'+
'<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+
'<td>'+x.transactionType+'</td>'+
'<td>'+x.id+'</td>';
if(x.description!=null) html+= '<td>' + {x.description} + '</td>';
html += '<td>'+x.ref_no+'</td>'+
'<td class="align-right">'+x.debit+'</td>'+
'<td class="align-right">'+x.credit+'</td>'+
'<td class="align-right">'+val+'</td></tr>';
});
html+=''+
''+时刻(x.date\u at).format('MM/DD/YYYY')+''+
''+x.transactionType+''+
''+x.id+'';
如果(x.description!=null)html+=''+{x.description}+'';
html+=''+x.ref_no+''+
''+x.借记卡+''+
''+x.信用证+''+
''+val+'';
});
如果那样,你就不能使用。基本问题是,在JavaScript中,if是一个语句,而不是一个表达式,并且它不返回任何值(不像Scala这样更严格的函数式语言,在Scala中,所有内容都是一个表达式并生成一个值)
因此,您有以下选项:
使用三元条件运算符?:它产生一个值,实际上可以在表达式中使用:
…+x、 描述?x、 说明:''+
唯一的不便之处是,您总是需要一个else值,因此在只检查description是否为null的情况下,您需要提供一个空字符串作为替代。当您需要打印大量字段时,这可能会很麻烦
在格式化范围内使用帮助函数。如果您只有一个大对象要格式化,这是一个优雅的解决方案:
const源={
第一:"第一",,
第二:空,
第三:"第三",,
}
功能fmt(键){
返回源[键]?源[键]:“”
}
让html='
'
+fmt('first')+'
'
+fmt('second')+'
'
+fmt('third')+'
'
+ ''
document.write(html)
如果那样的话,就不能使用。基本问题是,在JavaScript中,if是一个语句,而不是一个表达式,并且它不返回任何值(不像Scala这样更严格的函数式语言,在Scala中,所有内容都是一个表达式并生成一个值)
因此,您有以下选项:
使用三元条件运算符?:它产生一个值,实际上可以在表达式中使用:
…+x、 描述?x、 说明:''+
唯一的不便之处是,您总是需要一个else值,因此在只检查description是否为null的情况下,您需要提供一个空字符串作为替代。当您需要打印大量字段时,这可能会很麻烦
在格式化范围内使用帮助函数。如果您只有一个大对象要格式化,这是一个优雅的解决方案:
const源={
第一:"第一",,
第二:空,
第三:"第三",,
}
功能fmt(键){
返回源[键]?源[键]:“”
}
让html='
'
+fmt('first')+'
'
+fmt('second')+'
'
+fmt('third')+'
'
+ ''
document.write(html)
非常感谢您在@Vsevolod快速给出答案!我真的很困惑为什么我会犯这个错误,因为我认为它的语法是正确的。。无论如何,非常感谢您为我清除了这个问题。非常感谢您的快速回答@vsevold!我真的很困惑为什么我会犯这个错误,因为我认为它的语法是正确的。。不管怎样,非常感谢你帮我把这件事弄清楚。