一分钟认识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. 用途稍有不同:|| 是逻辑运算符偏向逻辑处理, ??主要为了简化代码
相关推荐
houyhea4 分钟前
从香港竹脚手架到前端脚手架:那些"借来"的发展智慧与安全警示
前端
_院长大人_11 分钟前
MyBatis Plus 分批查询优化实战:优雅地解决 IN 参数过多问题(实操)
java·mybatis
哈哈~haha26 分钟前
Step 14: Custom CSS and Theme Colors 自定义CSS类
前端·css·ui5
Ndmzi33 分钟前
Matlab编程技巧:自定义Simulink菜单(理解补充)
前端·javascript·python
C雨后彩虹41 分钟前
机器人活动区域
java·数据结构·算法·华为·面试
勇气要爆发1 小时前
物种起源—JavaScript原型链详解
开发语言·javascript·原型模式
我命由我123451 小时前
VSCode - VSCode 修改文件树缩进
前端·ide·vscode·前端框架·编辑器·html·js
a3158238061 小时前
Android Framework开发知识点整理
android·java·linux·服务器·framework·android源码开发
SoaringHeart1 小时前
Flutter组件封装:验证码倒计时按钮 TimerButton
前端·flutter