当前位置: 首页 > article >正文

空值合并运算符(??) 可选链操作符(?.)

空值合并运算符

语法
leftExpr ?? rightExpr
用法
leftExpr:要检查的表达式。
如果 `leftExpr` 是 `null` 或 `undefined` 时返回`rightExpr`。
否则返回本身。
示例
let foo = null;
let bar = "default string";
console.log(foo ?? bar); // 输出: "default string"

foo = "";
console.log(foo ?? bar); // 输出: ""

在这个例子中,只有当 foonullundefined 时,bar 的值才会被使用。如果 foo 是其他任何假值(如空字符串、0、NaN、false),foo 的值仍然会被返回。

|| 运算符的区别

|| 运算符(逻辑或)针对所有假值(包括 0""NaNfalse),而 ?? 运算符只针对 nullundefined

可选链操作符

在JavaScript中,?. 是一个可选链(Optional Chaining)操作符。它允许你安全地访问深层次的嵌套对象属性,而不必显式地验证链中的每一环是否有效。如果尝试访问的属性不存在或其值为 null/undefined,则表达式短路返回 undefined,而不是抛出一个错误。

语法

obj?.prop
  • obj?.prop:尝试访问 obj 对象的 prop 属性。如果 objnullundefined,则不会尝试访问 prop,而是直接返回 undefined

示例

const person = {
  name: "Alice",
  address: {
    street: "123 Main St",
    city: "Wonderland"
  }
};

// 使用可选链访问嵌套属性
console.log(person.address?.city); // 输出: "Wonderland"
console.log(person.contact?.email); // 输出: undefined,因为 contact 属性不存在

http://www.kler.cn/a/370057.html

相关文章:

  • 构建高效稳定的网络环境
  • Agent AI: Agent AI 的新兴范式
  • 【mptcp】ubuntu18.04和MT7981搭建mptcp测试环境操作说明
  • 计算机网络介质访问控制全攻略:从信道划分到协议详解!!!
  • ngrok同时配置多个内网穿透方法
  • Creo许可证激活失败原因及解决办法
  • 使用常数指针作为函数参数
  • 聚观早报 | 荣耀Magic7朝霞金配色;一加13全球首发太阳显示技术
  • k8s 二进制部署安装(一)
  • 2020重新出发,MySql基础,MySql数据库备份与恢复
  • 交易所开发:开启数字金融新时代
  • ZooKeeper的应用场景:深入探讨分布式系统中的多样化应用
  • 基于知识图谱的智能法律案件问答系统
  • 制作Ubuntu根文件系统
  • Flink(一)
  • 使用DeepSpeed进行多机多卡训练模型
  • Bug|空心病,不知道自己要干什么
  • 大语言模型数据流程源码解读(基于llama3模型)
  • 自己搭建[文本转语音]服务器
  • 2024 Rust现代实用教程:1.2编译器与包管理工具以及开发环境搭建
  • C++基于opencv的视频质量检测--图像清晰度检测
  • electron 监听窗口高端变化
  • JS | CommonJS、AMD、CMD、ES6-Module、UMD五种JS模块化规范
  • 海外发稿:探索海外外媒宣发分发渠道-大舍传媒
  • 如何使用VBA识别Excel中的“单元格中的图片”(1/2)
  • 着色器的认识