短路求值用&&表达“满足条件才执行”,用||实现“不满足就兜底”,可替代单分支if、设默认值、组合多步逻辑及配合三元运算符返回值,使代码更紧凑、语义更直白。

短路求值不是炫技,而是让条件逻辑更贴近自然语言的表达方式。关键在于用 && 表达“满足条件才执行”,用 || 表达“不满足就兜底”,避免嵌套和冗余变量。
用 && 替代单分支 if
当只需在条件为真时执行某个操作(比如打印、调用函数、触发副作用),&& 能直接把意图写进一行:
-
isLoggedIn && showWelcome();—— 登录了才显示欢迎页 -
user && renderUserProfile(user);—— user 存在才渲染头像和昵称 -
response?.data && saveToCache(response.data);—— 带可选链,双重保险
它比 if (isLoggedIn) { showWelcome(); } 更紧凑,且语义直白:前半句是前提,后半句是结果。
用 || 做安全的默认赋值
给变量设默认值时,|| 适合“只要假值就换”的场景(注意:0、''、false 也会被替换):
const theme = userPreference || 'light';const items = data.list || [];-
const id = params.id || generateId();—— 后者只在前者为假时调用
如果需要保留 0 或 false 这类“有效假值”,改用空值合并运算符 ??:params.count ?? 0。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
组合使用,处理简单多步逻辑
多个条件串联时,短路求值天然支持“守门式”流程:
-
user && user.isActive && sendNotification(user);—— 用户存在且激活才发通知 -
form.isValid() && form.submit() && resetForm();—— 验证通过才提交,提交成功才重置(注意:submit 返回 false 会中断后续) !isSaving && !hasError && enableSaveButton();
这种写法把执行顺序和依赖关系显式写在从左到右的结构里,比嵌套 if 更易扫读。
配合三元运算符,兼顾判断与返回值
需要根据条件产出不同值时,三元运算符 ? : 是短路求值的延伸,语义更明确:
const statusText = isActive ? '在线' : '离线';const price = isMember ? memberPrice : regularPrice;-
const fallbackName = user?.name ?? '访客';—— 可选链 + ??,覆盖 null/undefined
比起 if/else 块,它强制你聚焦“返回什么”,而不是“做什么”,更适合纯计算逻辑。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










