一分钟认识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. 用途稍有不同:|| 是逻辑运算符偏向逻辑处理, ??主要为了简化代码
相关推荐
与兰同馨5 分钟前
【踩坑实录】一次 H5 页面在 PC 端的滚动条与轮播图修复全过程(Vue + Vant)
前端
全栈技术负责人6 分钟前
前端架构演进之路——从网页到应用
前端·架构
不急不躁12313 分钟前
Android16 给应用默认获取权限
android·java
T___T24 分钟前
React Props:从基础使用到高级组件封装
前端·react.js
C雨后彩虹25 分钟前
5G网络建设
java·数据结构·算法·华为·面试
汉堡大王952725 分钟前
React组件通信全解:父子、子父、兄弟及跨组件通信
前端·javascript·前端框架
霍理迪26 分钟前
CSS继承,优先级以及字体样式
前端·css
LeeHK29 分钟前
在项目中调试vue2源码,watch,nextTick执行顺序梳理
前端
码界奇点31 分钟前
基于Spring Boot的后台管理系统设计与实现
java·spring boot·后端·车载系统·毕业设计·源代码管理
爱敲点代码的小哥31 分钟前
json序列化和反序列化 和 数组转成json格式
java·前端·json