es6中 ?? 与 || 区别

es6中 ?? 与 || 区别

自我记录

??||都是逻辑运算符,但它们的作用不同。
??是空值合并运算符,它用于检查左侧的表达式是否为nullundefined。如果是nullundefined,则返回右侧的表达式;如果不是,则返回左侧的表达式

ts 复制代码
let foo = null;
let bar = foo ?? 'default'; // bar 的值为 'default'

let baz; 
let qux = baz ?? 'default'; // qux 的值为 'default'

||是逻辑或运算符,它用于检查左侧的表达式是否为假。如果左侧的表达式为假,则返回右侧的表达式;如果左侧的表达式为真,则返回左侧的表达式。在JavaScript中,只有nullundefined''0NaN被视为假值,其他值都被视为真值。

ts 复制代码
let foo = 'hello';
let bar = foo || 'default'; // bar 的值为 'hello'

let baz; 
let qux = baz || 'default'; // qux 的值为 'default'

因此,??||的区别在于它们的逻辑行为和使用场景。??用于空值合并,而||用于逻辑或

相关推荐
星空椰6 分钟前
JavaScript基础:运算符和流程控制
开发语言·javascript·ecmascript
半个俗人13 分钟前
fiddler的基础使用
前端·测试工具·fiddler
a11177616 分钟前
变电站数字孪生大屏ThreeJS 开源项目
前端·信息可视化·开源·html
恋猫de小郭16 分钟前
AI 的公开测评得分都在作弊,就像泡面的封面,一切以实物为准
前端·人工智能·ai编程
禅思院18 分钟前
使用 VueUse 构建一个支持暂停/重置的 CountUp 组件
前端·vue.js·架构
薛定e的猫咪28 分钟前
2026 年 4 月实测:OpenAI Codex 保姆级教程,从安装到 MCP、Skills 与多智能体协作
前端·数据库·人工智能
I love studying!!!31 分钟前
Web应用程序:用户账户
前端·数据库·sqlite
whuhewei31 分钟前
React性能优化
前端·react.js·性能优化
m0_7381207232 分钟前
渗透知识ctfshow——Web应用安全与防护(三)
android·前端·安全
窝子面35 分钟前
NestJs+MongoDB+Deepseek+Langchain实现ai聊天助手
javascript·数据库·人工智能·mongodb