为什么无效合并执行两个部分?

why does nullish coalescing executing two parts?

我有一个方法:

const objT2 = {
  calcAge(year) {
    console.log(2022 - year);
  },
};

但是当我使用无效合并时,两个部分都被执行了。

objT2.calcAge(1990) ?? console.log(`method not found`);
//output => 32    method not found

首先,您使用 1990 调用 calcAge 方法。因此通过调用它,该方法得到执行 objT2.calcAge(1990)。这计算出 2022 - 199032,然后将其记录到控制台。然后这个方法 returns undefined 被评估为 ?? 运算符的左手操作数。当此运算符看到左侧返回空值(null 或未定义)时,它继续执行右侧,并记录 method not found