function x({ name = 'abc' }) {
console.log(name);
}
x({ name: null })
如何为上述情况提供默认值,以处理名称的所有虚假值?我曾期望name: null
何时被abc
取代,但显然不是这样吗?仅在以下情况下有效
function x({ name = 'abc' }) {
console.log(name);
}
x({ })
想知道是否可以为所有假值提供默认值吗?当然,我们可以明确检查条件,但想知道是否还有其他选择
答案 0 :(得分:2)
null
是有意的,undefined
不是有意的。
换句话说,提供null表示值是null
,因此不会将'abc'设置为默认值。
这应该可以解决问题:
function x({ name }) {
!(!!name) && (name = 'abc');
console.log(name);
}
x({ name: null })
答案 1 :(得分:2)
仅当值为undefined
时才应用默认参数值。您必须自己实现这种逻辑。
function x({name}) {
if (!name) {
name = 'abc';
}
console.log(name);
}
x({ name: null })
答案 2 :(得分:0)
如果值是null,重定义如何适合您?
function x({ name }) {
name = name ? name : 'abc';
console.log(name);
}
x({ name: null });
x({ name: 'asd' });