如何在参数中提供默认值?

时间:2018-11-09 06:31:18

标签: javascript

function x({ name = 'abc' }) {
  console.log(name);
}

x({ name: null })

如何为上述情况提供默认值,以处理名称的所有虚假值?我曾期望name: null何时被abc取代,但显然不是这样吗?仅在以下情况下有效

function x({ name = 'abc' }) {
  console.log(name);
}

x({  })

想知道是否可以为所有假值提供默认值吗?当然,我们可以明确检查条件,但想知道是否还有其他选择

3 个答案:

答案 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' });