如果没有实际传递给函数,如何重新声明函数参数?
Posted
技术标签:
【中文标题】如果没有实际传递给函数,如何重新声明函数参数?【英文标题】:How to redeclare function parameter if it is not actually passed into function? 【发布时间】:2022-01-10 05:12:29 【问题描述】:如果函数参数实际上没有传递到函数中,那么重新声明函数参数的最佳方法是什么?
function testVariable(foo, bar)
bar = bar ? bar : foo; // <--
return bar;
;
const myFinalValue = testVariable("testValue");
我想这样做以确保在我继续自动化之前bar
具有值(在此示例中为return
)。
我必须声明一个新的变量名还是可以覆盖给定的参数?
如果我覆盖该参数,如果没有将该参数的值传递给函数(根据示例),覆盖的变量是否会成为全局变量?
【问题讨论】:
参数工作(在几乎所有正常情况下)就像局部变量一样。不,赋值不会创建隐式全局,因为它已经是函数的局部变量。 【参考方案1】:只需使用默认值,然后检查变量是否为默认值,如果是,则为所欲为
function testVariable(foo, bar = foo)
return bar;
;
const myFinalValue = testVariable("testValue");
console.log(myFinalValue);
【讨论】:
可以将其他参数设置为默认值吗?喜欢function testVariable(foo, bar = foo)
?
刚刚回答了我的问题。根据 MDN,较早的参数可用于默认设置。 developer.mozilla.org/en-US/docs/Web/javascript/Reference/…
使用undefined
作为默认值是没有意义的。这正是将回退到默认值的值。
@BenRogol 对不起,如果我不清楚,是的,你的想法是正确的。
@Bergi 未定义是为了举例,我编辑了我的答案更清楚以上是关于如果没有实际传递给函数,如何重新声明函数参数?的主要内容,如果未能解决你的问题,请参考以下文章