为什么无效合并执行两个部分?
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 - 1990
即 32
,然后将其记录到控制台。然后这个方法 returns undefined
被评估为 ??
运算符的左手操作数。当此运算符看到左侧返回空值(null 或未定义)时,它继续执行右侧,并记录 method not found
。
我有一个方法:
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 - 1990
即 32
,然后将其记录到控制台。然后这个方法 returns undefined
被评估为 ??
运算符的左手操作数。当此运算符看到左侧返回空值(null 或未定义)时,它继续执行右侧,并记录 method not found
。