JavaScriptで変数名?でつまづいた

7年以上、JavaScriptから離れたいたので気づかなかった、Optional Chaining。

result = function_x()

if (!result?.code || !result?.msg) {
    return null;
}

!result? 何コレ?変数の中身に正規表現かけて評価? JavaScript 変数名 + ? で検索しても全くわからず。 いろいろ検索したら、 ES2020で追加された使用らしい。 result.code が定義されていなかったら undefined 、TypeError にならずに済む。 result.code が定義されていたら、その値。 いちいち変数が定義されているかチェック手間が省けて便利。