我有一支技术全面、经验丰富的小型团队,专注高效交付中等规模外包项目,有需要外包项目的可以联系我
有一天盯着自己的 JavaScript 代码,手指悬在键盘上,苦思有没有一种更干净的条件更新方式,不至于把逻辑写得臃肿又难读。
你肯定也遇到过:一边做 truthy 检查一边赋值,代码很快就缠成一团。
最近我注意到 &&=
。它简洁、现代,承诺能给脚本“瘦身”。我也担心它会不会变脆?一起看看这个运算符如何在减少样板代码的同时,保持可预期与安全。
让 JavaScript 更精瘦的运算符
&&=
只在左侧值为 truthy 时更新变量,而且一行就能写完。它是个让代码更紧凑、而不牺牲可读性的捷径。
它解决了冗长 if
检查塞满逻辑的痛点。
逻辑与赋值(&&=
):它到底做了什么?
&&=
只有在左侧变量为 truthy 时才把右侧值赋给它。可以把它想成一个“守门员”:合法(truthy)才允许更新。
拆解对比如下:
// 传统 if 语句
if (x) {
x = y;
}
// 使用逻辑与配合赋值
x = x && y;
// 现代写法(ES2021 起)
x &&= y;
&&=
如何保持“紧凑而安全”
它会先检查左值是否为 truthy,再决定是否赋右值。 这意味着当左值是 null
、undefined
、false
等 falsy 时,不会发生赋值。对可读性与可预期性都是好事。
let access = true;
access &&= 'granted'; // access 变为 'granted'
access = false;
access &&= 'granted'; // access 仍为 false(不更新)
access = '';
access &&= 'granted'; // access 仍为空字符串(不更新)
access = 0;
access &&= 'granted'; // access 仍为 0(不更新)
规律?只有当左值是 truthy 时,&&=
才会更新;遇到 falsy 则完全跳过。
常见使用场景示例
来看看在真实代码里它能如何派上用场。
示例 1:更新用户权限
function updateUserAccess(user) {
// 仅当字段已为 truthy 时才更新权限(避免把 false/空值误改)
user.canEdit &&= checkPermissions();
user.canDelete &&= checkAdminStatus();
return user;
}
示例 2:表单校验
const form = {
isValid: true,
isSubmitted: false,
hasErrors: false
};
// 只有在当前判定有效时才继续深入校验
form.isValid &&= validateFields(); // 运行校验并更新 isValid
form.isSubmitted &&= submitToServer(); // 若还未提交(falsy)则跳过
form.hasErrors &&= checkErrors(); // 保持 false,不误触发为 true
示例 3:API 响应验证链
const response = {
isAuthenticated: true,
hasPermission: true,
isExpired: false
};
// 各步骤仅在前置条件为 truthy 时才继续
response.isAuthenticated &&= validateToken();
response.hasPermission &&= checkAccess();
response.isExpired &&= checkExpiration(); // 保持 false(不更新)
Pro tip: 别把
&&=
和||=
搞混了。||=
是“左值为 falsy 才赋值”,而&&=
是“左值为 truthy 才赋值”。
小心这些细节(顺手避坑)
不是“布尔赋值”: &&=
不是把变量变成布尔值,它只是按短路规则决定“是否进行赋值”。右侧可以是任意类型。保留有意义的 falsy:像 0
、''
、NaN
、false
等在业务里可能是有意义的状态。&&=
会跳过更新,从而保留原值。副作用:右侧表达式只有在左值为 truthy 时才会执行;如果右侧有副作用(如函数调用),记得这一点。 可读性:对团队而言, x &&= y
往往比x = x && y
更直观,但请确保团队成员都熟悉这一语法(ES2021)。
最后总结
在下一个项目里试试 &&=
,你会发现它能去掉一堆样板 if,让逻辑更干净、边界更清晰。
前端AI·探索:涵盖动效、React Hooks、Vue 技巧、LLM 应用、Python 脚本等专栏,案例驱动实战学习,点击二维码了解更多详情。

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!
优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、微信小程序定制开发、移动端应用(手机站、APP开发)、微信定制开发(微信官网、微信商城、企业微信)等一系列互联网应用服务。