一分钟认识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. 用途稍有不同:|| 是逻辑运算符偏向逻辑处理, ??主要为了简化代码
相关推荐
晓晓_za8986682 分钟前
GEO 搜索源码白帽合规改造:适配各大 AI 信源收录规则
java·开发语言·人工智能·性能优化·开源
Haooog3 分钟前
从 Tool Calling 到 State 并发控制:一个 Agent 如何安全地连续执行任务
java·agent·后端开发
waillyer17 分钟前
企业知识库智能问答 Agent(React + Nest)
javascript·redis·agent
cindershade18 分钟前
别只收三个数字:前端 RUM 如何建立可解释的体验数据链
前端
君顾119 分钟前
从0到1课后辅导管理系统开发实战:需求文档、架构设计全复盘
java·开发语言
NeoGressAI外贸数字化25 分钟前
外贸建站:新手怎么自建独立站完整指南
java·人工智能
前端 贾公子26 分钟前
第09章:上下文与记忆 (4)
java·服务器·前端
Coodor39 分钟前
使用web也可以写NFC微信小程序拉取
前端·微信小程序·小程序·nfc拉起小程序
wjjzhbb39 分钟前
中小团队敏捷转型:Scrum还是看板?
java·maven·scrum
GodSure09141 小时前
Java单一职责原则SRP详解
java·python·单一职责原则