gpt4 book ai didi

javascript - 如何防止分配未定义的值代替默认值

转载 作者:行者123 更新时间:2023-11-30 20:32:55 24 4
gpt4 key购买 nike

我想在我的函数中打印字符串的名字和姓氏,但是如果任何参数未定义,那么它会打印未定义,但我想改用默认值。我想通过使用 es6/es7 功能来实现这一点,这是我的努力:

const printName =  (name = { first: 'K', last: 'M', separator: ' '}) =>  {
console.log("name", name);
let {first, last} = name;
fullname = `${first}${seprator}${last}`;
return fullName;
}

现在

let param = {first: 'A', last: undefined};
printName(param); // desired output 'A M'
let param = {first: undefined, last: 'B'};
getName(param) //desired output 'K B'

如果用户忘记发送任何参数,它应该打印'K M'

我想以正确的方式使用 ES6 功能,如 rest/spread operator 和 Object.assign,但未能获得所需的输出

最佳答案

您的代码中有几个拼写错误和语法错误。你的拼写错误是 fullName 实例化中的 separator 而你最后一次调用函数是 getName (我假设你的意思是 printName).您的语法错误如下:使用前需要实例化fullName;此外,最佳做法是一次设置一个默认参数而不是在一个对象中,然后将参数设置在一个数组而不是一个对象中并使用扩展 ... 运算符传递他们进入你的功能。

最后一件事是您对 let 的使用。如果你打算改变变量的值,你应该只使用它。这告诉开发人员该变量将随时间变化。与 const 相反,后者用于告诉开发人员变量的值在变量的生命周期内是一个常量(因此得名 const)。

试试下面的代码片段:

const printName =  (first = 'K', last = 'M', separator = ' ') =>  {
const fullName = `${first}${separator}${last}`;
return fullName;
}

let param = ['A', undefined];
console.log(printName(...param)); // desired output 'A M'
param = [undefined, 'B'];
console.log(printName(...param)); //desired output 'K B'

如果出于某种原因,您必须将参数作为对象传递,您可以这样做:

const printName =  ({first = 'K', last = 'M'}, separator = ' ') =>  {
const fullName = `${first}${separator}${last}`;
return fullName;
}

let param = {first: 'A', last: undefined};
console.log(printName(param)); // desired output 'A M'
param = {first: undefined, last: 'B'};
console.log(printName(param)); //desired output 'K B'

关于javascript - 如何防止分配未定义的值代替默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50147177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com