一分钟认识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. 用途稍有不同:|| 是逻辑运算符偏向逻辑处理, ??主要为了简化代码
相关推荐
lyyl啊辉3 分钟前
2. Vue数据双向绑定
前端·vue.js
与衫9 分钟前
如何将SQLFlow工具产生的血缘导入到Datahub平台中
java·开发语言·数据库
Never_Satisfied15 分钟前
在JavaScript / HTML中,在html的元素中寻找第X个某元素
开发语言·javascript·html
m0_4750645017 分钟前
SpringAI-1-集成DeepSeek
java
好家伙VCC19 分钟前
**发散创新:编译器优化实战——从LLVM IR到性能飞跃的奇妙旅程**
java·开发语言·python·算法
Anastasiozzzz25 分钟前
如何理解AOP?带你写一个!
java·开发语言
礼拜天没时间.29 分钟前
Docker Registry私有仓库搭建与使用
java·运维·docker·云原生·容器·centos
追随者永远是胜利者29 分钟前
(LeetCode-Hot100)70. 爬楼梯
java·算法·leetcode·职场和发展·go
前路不黑暗@34 分钟前
Java项目:Java脚手架项目的阿里云短信服务集成(十六)
android·java·spring boot·学习·spring cloud·阿里云·maven