我正在尝试找出是否有一种方法可以使用默认参数的对象分解,而不必担心部分定义了对象。考虑以下:
(function test({a, b} = {a: "foo", b: "bar"}) {
console.log(a + " " + b);
})();
{a: "qux"}例如,当我用调用时,我会qux undefined在控制台中看到真正想要的时间qux bar。有没有一种方法可以实现而无需手动检查对象的所有属性?
Answers:
是。您也可以在解构中使用“默认值”:
(function test({a = "foo", b = "bar"} = {}) {
console.log(a + " " + b);
})();
这不限于函数参数,而是适用于每个解构表达式。
undefined,但还是错误,如果b是null正确的?任何方式,以防止双方undefined和null解构的时候?例如:{a: "qux", b: null}仍然会出错。
undefined-null必须显式完成传递,因此会导致错误。要处理null和undefined,请使用b == null ? "bar" : b函数内部的标准。