JavaScript 函数条件式调用
function f(x) {}
可以这样使用这个函数
f?.(x);
等价于
f !== null && f !== undefined ? f(x) : undefined;
表示在函数不是 null 或者 undefined 的情况下才调用。且这种方式调用为短路操作,如果左侧为 null 或者 undefined,则圆括号中的任何表达式都不会被求值。
注意:?.(x)
只会检查左侧的值是否为 null 或者 undefined,无法判定是否为函数。
function fn(x) {
x?.();
}
fn(1); // Uncaught TypeError: x is not a function