一分钟认识JS中 ?? 和 || 两者的用法和区别

前言

在JS中,??|| 都可以处理空值或者未定义,这两个操作符有什么区别呢?

||

|| 是逻辑或运算符,用于进行逻辑判断,它是这样运行的,如果第一操作值为假值(null、undefined、false、空字符串、0、NaN),那么就会返回第二个值。如果第一个值为真值,返回第一个值。

|| 一般用在处理默认值或者条件运算

示例

js 复制代码
const a = null;
const b = "Hello World";
const c = a || b; // c is now "Hello World"

??

??是空值合并操作符,用于对空值(null、undefined)进行处理。它的行为是这样的:如果第一个操作数是空值(例如 nullundefined),那么它就会返回第二个操作数的值。反之返回第一个值。

?? 一般用于简化代码进行空值合并

js 复制代码
const a = null;
const b = "Hello World";
const c = a ?? b; // c is now "Hello World"

区别

js 复制代码
const a = false
const b = "Hello World"
a ?? b  // false
a || b // "Hollo World"

总结起来有两点不同:

  1. 值判断范围不同: || 判断是否为假值 , 而??主要针对null undefined
  2. 用途稍有不同:|| 是逻辑运算符偏向逻辑处理, ??主要为了简化代码
相关推荐
不想写bug呀4 分钟前
RabbitMQ相关问题(1)
java·rabbitmq
海南java第二人5 分钟前
Spring Boot Starters深度解析:简化依赖管理的核心利器
java·spring boot·后端
captain3769 分钟前
Java-链表
java·开发语言·链表
tqs_1234510 分钟前
跳出多层循环的方式
java·开发语言
东方轧线17 分钟前
突破锁竞争的性能枷锁:深度剖析 C++ 内存模型与无锁编程在超大规模并行 AI 系统中的极致应用实践
java·c++·人工智能
想起你的日子19 分钟前
EFCore之Code First
前端·.netcore
框架图29 分钟前
Html语法
前端·html
深耕AI42 分钟前
【wordpress系列教程】07 网站迁移与备份
运维·服务器·前端·数据库
风清云淡_A1 小时前
【JPA】spring集成jpa实战之数据增删改查入门教程(二)
java
让我上个超影吧1 小时前
天机学堂——播放进度方案优化
java·spring boot·redis·spring cloud