可选链操作符

可选链运算符(?.) 用于访问对象的属性或调用函数。如果使用此运算符访问的对象或调用的函数是 undefinednull,那么不会抛出错误,而是直接返回 undefined

function foo(options) {
  console.log(options?.db?.port)
}
foo({
  db: {
    port: 3306
  }
})
function foo(dbConfig) {
  console.log(dbConfig?.db?.getConnection?.()?.lastUsedTime)
}
foo({
  db: {
    port: 3306,
    getConnection() {
      return {
        lastUsedTime: 1751271086809000
      }
    }
  }
})
const nestedProp = obj?.["prop" + "Name"];