如何在JavaScript HTML模板引擎中检测null或undefined值?
修复方案
你当前的代码仅判断了false和空字符串,未覆盖null/undefined的场景,导致这两种值会进入else分支显示TRANSFERRED。以下是两种修复方式:
方式一:明确枚举判定条件
直接把null和undefined加入if的判断逻辑,精准覆盖所有需要显示"NOT TRANSFERRED"的情况:
{% if (ctx.m.transferTicket === false || ctx.m.transferTicket === '' || ctx.m.transferTicket === null || ctx.m.transferTicket === undefined) { %} <div>NOT TRANSFERRED</div> {% } else { %} <div>TRANSFERRED</div> {% } %}
方式二:利用假值特性简化代码
在JavaScript中,null、undefined、false、空字符串都属于假值,可以用逻辑非运算符!直接判断,代码更简洁:
{% if (!ctx.m.transferTicket) { %} <div>NOT TRANSFERRED</div> {% } else { %} <div>TRANSFERRED</div> {% } %}
注意:如果transferTicket业务上可能出现0、NaN这类其他假值,也会被判定为"NOT TRANSFERRED",如果你的场景不存在这类值,推荐用这个方法。
内容的提问来源于stack exchange,提问作者SkyeBoniwell
相关产品推荐
相关产品推荐

