当前位置: 首页 > 面试题库 >

有没有更好的方法在JavaScript中执行可选函数参数?[重复]

鲜于勇
2023-03-14
问题内容

我一直像这样处理JavaScript中的可选参数:

function myFunc(requiredArg, optionalArg){
  optionalArg = optionalArg || 'defaultValue';

  // Do stuff
}

有更好的方法吗?

有没有在这种情况下使用||会失败的情况?


问题答案:

如果传递了optionalArg,您的逻辑将失败,但评估为false-尝试使用此方法

if (typeof optionalArg === 'undefined') { optionalArg = 'default'; }

或另一种习语:

optionalArg = (typeof optionalArg === 'undefined') ? 'default' : optionalArg;

使用任何一种最能传达您意图的习语!



 类似资料:
  • 这可能看起来像是一个原始的问题,也可能是一个简单的实用程序库方法,我不知道。 目标是检查嵌套在两个对象下的布尔字段的值。 我知道这可以在一个中完成。为了可读性,我在这里添加了多个s。 有没有一种方法可以简化上面的语句,并有一个简单的实用程序类,在父对象是否为null时返回的值?

  • 问题内容: 我有一个多模块Maven项目,其中一个模块用于分发。 该发行版包含一个我想轻松执行的可执行jar。但是,要执行它,我必须键入类似以下内容: 简单键入以下内容将是更好的选择: 不幸的是,我找不到找到执行.jar的java目标的方法。exec目标实际上可以做到,但是有一个陷阱:jar包含一个嵌入式码头服务器,并且由于exec的工作方式(不使用与maven相同的JVM),除非我杀死进程,否则

  • 我试图理解RxJs的可观测性,我使用的是角度框架!我无法理解“订户函数”中实际发生了什么,它有一个名为“observer”的参数,这个参数在函数体中有一个方法,它的名称是next()!函数参数可以拥有一个方法吗?根据哪条规则?!下一个问题是:“可观察”类中发生了什么?我认为subscriber函数返回或更准确地说,创建一个值并将其传递给可观察的实例!当我们在“customIntervalObser

  • 问题内容: 假设我有一个PHP函数foo: 有什么办法只能指定第二个可选参数? 例: 问题答案: PHP本身不支持命名参数作为函数。但是,有一些方法可以解决此问题: 使用数组作为该函数的唯一参数。然后,您可以从数组中提取值。这允许在数组中使用命名参数。 如果要根据上下文允许可选数量的参数,则可以使用func_num_args和func_get_args而不是在函数定义中指定有效参数。然后,根据参数

  • 但是,如果Terminal中没有提供,我不知道如何(或者是否能够)为其设置默认值。像这样简单的东西不起作用。这里的一个解决方案是根据的内容或大小在函数中设置变量。但我不知道有没有更好的办法做到这一点。 因此,我正在寻找一种方法来使用来自终端的参数调用一个函数,其中需要一个数字(在本例中为2),而其余的是可选的,并设置为默认值。

  • 我正在尝试使用Typescript重载一个方法。Java或C#中通常的重载方式似乎不适用于Typescript。我不能这样做: 我四处搜索,发现我必须这样做: 对我来说,这个方法似乎很不整洁,很难维护,因为我把所有东西都乱七八糟地放在一个方法中,并使用if/ther语句来划分逻辑。 有没有更好的方法可以在Typescript中进行方法重载?