O que é o operador Optional Chaining e como ele funciona?

O operador de encadeamento opcional (?.) é uma ferramenta útil em JavaScript que permite acessar propriedades de objetos ou chamar métodos com segurança sem se preocupar se eles existem. É como uma rede de segurança para trabalhar com objetos que podem ter partes faltando.
const person = {
  name: "Alice",
  age: 30
};

console.log(person.name); // "Alice"
console.log(person.job); // undefined
Neste exemplo, person.name existe, então ele registra Alice. Mas person.job não existe, então ele nos retorna undefined. Agora, digamos que queremos acessar uma propriedade de um objeto que pode não existir:
const person = {
  name: "Alice",
  age: 30
};

console.log(person.address.street); // This will throw an error!
Este exemplo lançará um Uncaught TypeError. Como person.address está undefined, não conseguimos acessar a propriedade street. É aqui que o operador de encadeamento opcional é útil. Aqui está um exemplo de uso do operador optional chaining:
const user = {
  name: "John",
  profile: {
    email: "john@example.com",
    address: {
      street: "123 Main St",
      city: "Somewhere"
    }
  }
};

console.log(user?.profile?.address?.street); // "123 Main St"
console.log(user?.profile?.phone?.number);   // undefined
Ao usar o operador de encadeamento opcional, estamos dizendo ao JavaScript para continuar com a operação somente se o objeto (ou o valor antes do ?.) existir e não for null ou undefined. Se o valor antes do ?. for null ou undefined, o JavaScript retorna undefined em vez de tentar prosseguir com a operação e lançar um erro. Lembre-se, o operador de encadeamento opcional é mais útil quando você não tem certeza se uma propriedade ou método existe. Ele ajuda a prevenir erros e torna seu código mais robusto.
Este módulo não possui perguntas. Marque como concluído.