一分钟认识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. 用途稍有不同:|| 是逻辑运算符偏向逻辑处理, ??主要为了简化代码
相关推荐
23级二本计科4 分钟前
前端 HTML + CSS + JavaScript
前端·css·html
周末吃鱼4 分钟前
研发快速使用JMeter
java·jmeter
EntyIU5 分钟前
自己实现mybatisplus的批量插入
java·后端
踩着两条虫5 分钟前
VTJ.PRO「AI + 低代码」应用开发平台的后端模块系统
前端·人工智能·低代码
pany12 分钟前
程序员近十年新年愿望,都有哪些变化?
前端·后端·程序员
小途软件15 分钟前
基于深度学习的人脸检测算法研究
java·人工智能·pytorch·python·深度学习·语言模型
朱昆鹏16 分钟前
IDEA Claude Code or Codex GUI 插件【开源自荐】
前端·后端·github
HashTang17 分钟前
买了专业屏只当普通屏用?解锁 BenQ RD280U 的“隐藏”开发者模式
前端·javascript·后端
双向3317 分钟前
Agent智能体:2026年AI开发者必须掌握的自主系统革命
前端
мо仙堡杠把子ご灬18 分钟前
【无标题】
javascript