如何去掉JS三元运算符的else分支?现有DOM元素判断逻辑需调整
解决方案
三元运算符本身设计为双分支返回值场景使用,如果你不需要else分支逻辑,有两种更适配的实现方式:
方案1:逻辑与运算符(最简洁,推荐)
利用逻辑与的短路特性,前面条件为假时不会执行后续语句,完全不需要写else分支:
function clear_error(id){ const errorSpan = document.getElementById(id); // 元素存在时才会执行清空操作,不存在时自动跳过 errorSpan && (errorSpan.innerHTML = ""); }
额外优化:把获取到的DOM节点存为临时变量,避免重复调用document.getElementById,性能和可读性都更好。
方案2:普通if判断(可读性最高,适合后续维护)
如果团队代码规范要求逻辑显式化,用普通if判断更直观:
function clear_error(id){ const errorSpan = document.getElementById(id); if (errorSpan) { errorSpan.innerHTML = ""; } }
注:document.getElementById 找不到元素时会返回null,直接判断if(errorSpan)即可覆盖未创建的场景,不需要额外判断!= undefined。
如果你坚持要用三元运算符实现
可以在else分支放void 0占位,无任何执行效果:
function clear_error(id){ const errorSpan = document.getElementById(id); errorSpan ? (errorSpan.innerHTML = "") : void 0; }
该写法可读性较差,不推荐。
内容的提问来源于stack exchange,提问作者user11387524
相关产品推荐
相关产品推荐

