空值合并运算符(??)在左侧为null或undefined时返回右侧操作数,否则返回左侧;它只过滤null/undefined,不将0、''、false等假值视为无效,适用于安全设置默认值及配合可选链使用。
空值合并运算符(??)是 JavaScript 中用于处理 null 和 undefined 的一种简洁方式。它常用于逻辑判断中,确保变量在“真正缺失”时才使用默认值。
空值合并运算符 ?? 在左侧操作数为 null 或 undefined 时,返回右侧操作数;否则返回左侧操作数。
与逻辑或(||)不同,?? 不会将“假值”如 0、''、false 视为无效,只关注 null 和 undefined。
示例对比:
const count = 0 ?? 10; → 结果是 0(保留 0)
const count = 0 || 10; → 结果是 10(0 被视为假值)
当你希望仅在值完全缺失时提供默认值,空值合并非常有用。
0 或空字符串,但未设置时用默认false,但你不希望误判为无效null 或 undefined
实际例子:
const username = user.name ?? '匿名用户';
如果 user.name 是 null 或 undefined,才会使用 '匿名用户'。
空值合并不能直接和 && 或 || 混用,除非加括号明确优先级。
JavaScript 规定:?? 不能与 && 或 || 直接连写,会抛出语法错误。
正确写法:
const result = (a !== null && a !== undefined) ? a : b; 等价于
const result = a ?? b;
若需组合判断,使用括号:
const enabled = (isValid ?? true) && (status === 'active');
基本上就这些。合理使用 ?? 可以让逻辑更清晰,避免误判有效假值。不复杂但容易忽略细节。
# javascript
# java
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
Python装饰器设计思路_功能增强机制说明【指导】
Windows 11怎么设置默认解压软件_Windows 11为ZIP/RAR文件指定默认打开程序
如何使用Golang读取日志文件_Golang bufio Scanner日志处理示例
Windows如何拦截腾讯视频广告_Windows拦截腾讯视频广告方法【方法】
Win10系统更新错误0x80240034怎么办 Win10更新错误解决法【方法】
Windows 11怎么更改锁屏超时时间_Windows 11电源选项中设置屏幕关闭时间
MAC的“接续互通”功能无法使用怎么办_MAC检查蓝牙、Wi-Fi和相同Apple ID登录
LINUX怎么设置系统语言_LINUX修改中文环境
c++如何连接Redis c++ hiredis库使用教程【指南】
php命令行怎么运行_通过CLI模式执行PHP脚本的步骤【说明】
C++如何解析JSON数据?(nlohmann/json库示例)
Windows10系统怎么查看显卡型号_Win10 dxdiag显示选项卡
Windows10无法识别USB设备描述符请求失败_通用串行总线控制器修复
如何在 Go 同包不同文件中正确引用结构体
c++怎么操作redis数据库_c++ hiredis库连接与命令执行【实战】
如何用正则表达式精确匹配“start”到“end”之间最多含一个换行符的文本段
Win11怎么关闭任务栏小组件_Windows11隐藏任务栏天气图标
php怎么下载安装后测试是否成功_简单脚本验证方法【操作】
Win11输入法选字框不见了怎么办_Win11输入法修复与重置【教程】
如何在Golang中实现服务熔断与限流_Golang微服务容错与流控方法
如何在Golang中实现自定义Benchmark_Golang testing.B自定义性能测量示例
Python与GPU加速技术_CUDA与Numba高性能计算实践
如何测试您的网站全球打开速度-网站海外测速工
Python数据挖掘核心算法实践_聚类分类与特征工程
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
Win11视频默认播放器怎么改_Win11关联第三方播放器【步骤】
Win11怎么设置应用分屏_Windows11贴靠布局Snap Layouts
php本地部署后session无法保存_session存储路径与权限设置技巧【技巧】
如何在同包不同文件中正确引用 Go 结构体
c++如何利用doxygen生成开发文档_c++ 代码注释规范与HTML文档导出【案例】
php打包exe后无法写入文件_权限问题解决方法【教程】
C#如何使用Channel C#通道实现异步通信
Win11怎么设置声音输出设备_Windows11音量合成器单独调节应用
Win11怎么更改盘符_Win11磁盘管理修改驱动器号【步骤】
本地php环境出现502错误_nginx或apache502badgateway解决技巧【解答】
Windows 10怎么把任务栏放在屏幕上方_Windows 10解锁任务栏并拖动位置
跨文件调用类方法怎么用_php作用域操作符与自动加载配合【介绍】
Win11怎么关闭自动调节亮度_Windows11禁用内容自适应亮度
小程序里php怎么变mp4_小程序调用php生成mp4视频方法【教程】
微信企业付款回调PHP怎么接收_处理企业付款异步通知数据教程【教程】
Win10 BitLocker加密教程 Win10给磁盘驱动器上锁【安全】
TestNG的testng.xml配置文件怎么写
Windows电脑如何进入安全模式?(多种按键方法)
Windows10怎么查看硬件信息_Windows10硬件信息查询方法【指南】
Win11怎么设置闹钟_Windows 11时钟应用闹钟设置指南【详解】
Win10电脑怎么设置网络名称_Windows10注册表NetworkList修改
Win11怎么查看硬盘型号_Windows 11检测硬盘信息方法【技巧】
c++中的std::conjunction和std::disjunction是什么_c++模板元编程逻辑运算【C++17】
Win10怎样清理C盘Steam游戏缓存_Win10清理Steam游戏缓存步骤【步骤】
Windows10蓝屏代码DPC_WATCHDOG_VIOLATION_Win10死机修复指南
2025-12-04
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。