TypeScript 编程,|| 和 ?? 的区别是什么?

||(逻辑或运算符)

  • 作用:如果左侧操作数为"假值"(falsy),返回右侧操作数。
  • 假值(falsy)的定义:
    • false
    • 0
    • ''(空字符串)
    • null
    • undefined
    • NaN

示例:

typescript 复制代码
const a = 0 || 'default'; // 'default'
const b = false || 'default'; // 'default'
const c = '' || 'default'; // 'default'
const d = null || 'default'; // 'default'
const e = undefined || 'default'; // 'default'

const f = 'value' || 'default'; // 'value'
const g = 42 || 'default'; // 42

??(空值合并运算符)

  • 作用:如果左侧操作数为 nullundefined(其它假值除外),返回右侧操作数。

示例:

typescript 复制代码
const a = 0 ?? 'default'; // 0
const b = false ?? 'default'; // false
const c = '' ?? 'default'; // ''
const d = null ?? 'default'; // 'default'
const e = undefined ?? 'default'; // 'default'

const f = 'value' ?? 'default'; // 'value'
const g = 42 ?? 'default'; // 42

注意,?? 的优先级比 || 高。

相关推荐
网络点点滴3 分钟前
Vue组件通信-mitt
前端·javascript·vue.js
拾贰_C3 分钟前
[spring boot | springboot web ] spring boot web项目启动失败问题
前端·spring boot·后端
王家视频教程图书馆4 分钟前
大前端(原生开发的尽头是html css js)
前端·javascript·css
低保和光头哪个先来7 分钟前
TinyEditor 篇2:剪贴板粘贴图片并同步上传至服务器
服务器·前端·javascript·css·vue.js
青柠代码录11 分钟前
【Vue3】SCSS 基础篇
前端·scss
为美好的生活献上中指11 分钟前
*Java 沉淀重走长征路*之——《Java Web 应用开发完全指南:从零到企业实战(两万字深度解析)》
java·开发语言·前端·html·javaweb·js
阳火锅13 分钟前
AI时代的到来,我想打造这样一款产品。
前端·javascript·vue.js
llxxyy卢14 分钟前
polar-web题目
开发语言·前端·javascript
OpenTiny社区15 分钟前
不仅是修复 Bug:TinyVue 3.29.0 把“无障碍信息”写进了组件的 DNA 里
前端·javascript·vue.js