单行写法提升可读性需满足简短直观前提:三元运算符用于双值赋值,&&用于存在性操作,||或??提供默认值,提前返回减少嵌套。

单行写法不是为了炫技,而是让简单条件更直观、更少干扰主逻辑。关键在于“简短”——只适用于一眼能看懂的判断,复杂逻辑硬塞进一行反而降低可读性。
用三元运算符替代单层 if-else 赋值
当只是根据条件给变量赋两个不同值时,三元运算符最自然:
优化前:
if (isLoggedIn) {
statusText = '已登录';
} else {
statusText = '未登录';
}
优化后:
statusText = isLoggedIn ? '已登录' : '未登录';
用逻辑与(&&)做存在性检查后执行
适合“有这个东西才去干某事”的场景,比如触发回调、调用方法:
- user && user.logIn(); // 用户存在才调登录方法
- data && render(data); // data 有值才渲染
- isLoading && '加载中...'; // JSX 中常用
用逻辑或(||)提供默认值
比 if 判断再赋值更轻量,尤其适合初始化或兜底:
立即学习“Java免费学习笔记(深入)”;
优化前:
if (!timeout) {
timeout = 5000;
}
优化后:
timeout = timeout || 5000;
// 或更安全写法(避免 0、''、false 等假值被覆盖):
timeout = timeout ?? 5000; // 使用空值合并操作符
排非提前返回,减少嵌套层级
把“不满足就退出”的检查放在最前面,后面直接写主逻辑,不用 else:
优化前:
if (id) {
if (token) {
fetchUser(id, token);
} else {
throw '缺少 token';
}
} else {
throw '缺少 id';
}
优化后:
if (!id) throw '缺少 id';
if (!token) throw '缺少 token';
fetchUser(id, token);


















