【问题标题】: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)。

我必须声明一个新的变量名还是可以覆盖给定的参数?

如果我覆盖该参数,如果没有将该参数的值传递给函数(根据示例),覆盖的变量是否会成为全局变量?

【问题讨论】:

  • 参数工作(在几乎所有正常情况下)就像局部变量一样。不,赋值不会创建隐式全局,因为它已经是函数的局部变量。

标签: javascript function variables parameters


【解决方案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 未定义是为了举例,我编辑了我的答案更清楚
猜你喜欢
  • 2017-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多