逻辑运算符短路是指JavaScript中||和&&在确定结果后停止执行后续表达式。||返回第一个真值,常用于设置默认值;&&返回第一个假值,可用于安全访问对象属性或条件执行函数,提升代码简洁性与安全性。

在JavaScript中,逻辑运算符的“短路”特性不仅能提升代码效率,还能巧妙地用于条件判断的优化。理解并合理运用这一机制,能让代码更简洁、更具可读性。
什么是逻辑运算符短路?
JavaScript中的 ||(或)和 &&(与)是短路运算符。这意味着它们在确定结果后,不会继续执行后续表达式。
- ||:只要第一个操作数为真值,就不再计算后面的表达式,直接返回该值。
- &&:只要第一个操作数为假值,就立即返回该值,不再执行后续内容。
这种行为称为“短路求值”,它不只是性能优化手段,更是控制流程的有效方式。
用 || 实现默认值赋值
利用 || 的短路特性,可以快速设置默认值,避免使用冗长的 if 判断。
比如函数接收参数时,希望提供默认值:
const getUserInfo = (name, age) => {name = name || '匿名用户';
age = age || 18;
return `${name},${age}岁`;
};
当传入的 name 为 null、undefined 或空字符串等假值时,会自动取右侧的默认值。这种方式简洁明了,但要注意区分“需要保留假值”的场景。
用 && 避免无效操作
&& 常用于在对象存在时才访问其属性或调用方法,防止出现 Cannot read property of undefined 错误。
例如:
const user = { name: 'Alice', profile: { level: 5 } };user && user.profile && console.log(user.profile.level); // 输出 5
如果 user 为 null,后面的访问就不会执行,避免报错。这种写法在渲染条件或事件处理中非常常见。
结合短路进行条件执行
在某些场景下,可以用短路替代简单的 if 语句,让代码更紧凑。
- 只在条件成立时执行函数:
isLoggedIn && showDashboard(); - 提供备选方案:
getUserName() || alert('用户名未设置');
这类写法适合逻辑简单的情况。若判断复杂或涉及多步操作,仍建议使用 if/else 以保证可读性。
基本上就这些。掌握逻辑运算符的短路行为,能让你写出更高效、更自然的JavaScript代码。关键是理解每个操作数的真假值判断,并在合适场景中灵活应用。不复杂,但容易忽略细节。









