JavaScript中三元运算符条件为假时如何实现不执行任何操作?
关于该写法的合理性说明
这种写法语法层面可以正常运行,但不属于正确的用法,非常不推荐。
核心问题
- 三元运算符的设计定位是值返回表达式,本质是用来根据条件返回两个不同的值,而非替代if做流程控制。你当前的写法完全没有用到三元运算符返回的
alert返回值/空字符串,属于对表达式特性的滥用。 - 空字符串
''在这里属于无意义的冗余值,凭空产生了不需要的内存开销。
推荐的替代方案
- 最符合规范的写法是直接使用单分支
if语句,可读性和可维护性都是最高的:
if (1 == 1) alert('YES')
- 如果追求简写,也可以用逻辑与运算符实现,语义比滥用三元更清晰:
1 == 1 && alert('YES')
注意这种简写仅推荐用在简单的单行执行逻辑场景,复杂分支逻辑还是优先用if语句。
如果确实出于特殊场景一定要用三元实现假分支无操作,相比空字符串更通用的写法是用undefined或者null,但本质还是不符合三元运算符的设计初衷,不建议在业务代码中使用。
内容的提问来源于stack exchange,提问作者Chafik
相关产品推荐
相关产品推荐

