一分钟认识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. 用途稍有不同:|| 是逻辑运算符偏向逻辑处理, ??主要为了简化代码
相关推荐
叶落阁主12 分钟前
别再从 0 造后台了:`antdv-next-admin`,开箱即用的 Vue 3 中后台脚手架
前端
yiranlater15 分钟前
状态驱动渲染和事件驱动模型
前端
csdn飘逸飘逸16 分钟前
Autojs基础-控件操作
javascript
yuki_uix20 分钟前
用 useState 管理服务端数据?不如试试 React Query 来“避坑”
前端
薛定e的猫咪21 分钟前
Vibe Coding范式实战:用AI工具链(Stitch+Figma+ai studio+Trae)快速开发全栈APP
前端·人工智能·react.js·github·figma
折七27 分钟前
2026 年 Node.js 后端技术选型,为什么我选了 Hono 而不是 NestJS
前端·后端·node.js
下北沢美食家28 分钟前
Express框架入门
开发语言·javascript·express
高斯林.神犇35 分钟前
idea快捷键
java·ide·intellij-idea
毕设源码-钟学长36 分钟前
【开题答辩全过程】以 基于Vue的租房App为例,包含答辩的问题和答案
前端·javascript·vue.js
CappuccinoRose38 分钟前
HTML语法学习文档 - 汇总篇
前端·学习·html5