JavaScript中的可选链操作符

embedded/2024/11/13 5:17:10/

在JavaScript中,?. 被称为可选链操作符(Optional Chaining Operator)。它允许你访问对象的深层属性而不必显式地检查每一层属性是否存在。如果链中的某个属性不存在,表达式将短路返回undefined,而不是抛出一个TypeError异常。

例如,假设你有一个对象a,它可能包含一个属性b,而b又可能包含属性c

javascript">const a = {b: {c: 1}
};

使用传统的访问方式,你需要这样检查属性:

javascript">const c = a && a.b && a.b.c;

但是使用可选链操作符,你可以简化为:

javascript">const c = a?.b?.c;

如果aa.ba.b.c中的任何一个不存在,c将被赋值为undefined,而不是抛出错误。这使得代码更加简洁和安全。可选链操作符也可以与函数调用和new操作符一起使用:

javascript">const result = a?.b?.doSomething();
const instance = new a?.b?.MyClass();

如果a.ba.b.MyClass不存在,resultinstance将分别是undefinedTypeError(因为new操作符需要一个有效的构造函数)。

面试题:

javascript">const person = {firstName: "Lydia",lastName: "Hallie",pet: {name: "Mara",breed: "Dutch Tulip Hound"},getFullName() {return `${this.firstName} ${this.lastName}`;}
};console.log(person.pet?.name);
console.log(person.pet?.family?.name);
console.log(person.getFullName?.());
console.log(person.getLastName?.());

输出是:Mara undefined Lydia Hallie undefined


http://www.ppmy.cn/embedded/58300.html

相关文章

Java-关键字(static,final)

1.1 static关键字 static关键字 : 静态的意思 , 可以修饰变量 , 也可以修饰方法 , 被static修饰的成员 , 我们叫做静态成员 static特点 : 静态成员被所类的所有对象共享 随着类的加载而加载 , 优先于对象存在 可以通过对象调用 , 也可以通过类名调用 , 建议使用类名 1. 静…

代理IP有什么用途

代理IP主要有以下应用场景: 1、隐藏真实IP地址:通过使用代理IP,可以隐藏真实的网络请求来源,保护用户隐私。 2、绕过网络限制:一些地区或网络环境可能存在访问限制,通过使用代理IP可以绕过这些限制&#xf…

C++入门基础(1)

因为6月中旬学校事情多,许久未更新,让我们继续学习吧! 目录 前言: 一、命名空间: 1、定义: 2、使用: 3、访问命名空间域: 二、C输入、输出函数: 1、输入函数: 2、输出…

【方法】如何打开设置了密码的ZIP文件?

对于重要的ZIP文件,很多人会设置密码保护,那要如何打开设置了密码的ZIP文件呢?今天我们一起来看下,在记得密码和忘记密码的情况下,如何打开ZIP文件。 情况1: 如果知道ZIP文件原本设置的密码,我…

多GPU指定运行某个GPU

在PyTorch中,你可以使用[torch.cuda.set_device(device)来设置要使用的GPU。device参数是你想要使用的GPU的索引号,例如,如果你有两个GPU,那么它们的索引号分别是0和1。 在你的代码中,你可以在加载模型到GPU之前&…

华为HCIP Datacom H12-821 卷30

1.单选题 以下关于OSPF协议报文说法错误的是? A、OSPF报文采用UDP报文封装并且端口号是89 B、OSPF所有报文的头部格式相同 C、OSPF协议使用五种报文完成路由信息的传递 D、OSPF所有报文头部都携带了Router-ID字段 正确答案:A 解析: OSPF用IP报…

LLM - 神经网络的组成

1. 一个神经元的结构:即接受多个输入X向量,在一个权重向量W和一个偏执标量b的作用下,经过激活函数后,产生一个输出。 2. 一层神经网络的结构:该层网络里的每个神经元并行计算,得到各自的输出;计算方式是输入…

力扣第226题“翻转二叉树”

在本篇文章中,我们将详细解读力扣第226题“翻转二叉树”。通过学习本篇文章,读者将掌握如何使用递归和迭代的方法来翻转二叉树,并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释,以便于理解。 问题描述 力扣第…