首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何测试函数是否提供了参数?

如何测试函数是否提供了参数?
EN

Stack Overflow用户
提问于 2012-10-23 04:50:17
回答 9查看 92.8K关注 0票数 75

我想知道,你能创建一个带有可选参数的函数吗?

示例:

代码语言:javascript
运行
复制
function parameterTest(test)
{
   if exists(test)
   {
     alert('the parameter exists...');
   }
   else
   {
     alert('The parameter doesn\'t exist...');
   }
}

因此,如果调用parameterTest(),则结果将是一条消息“该参数不存在...”。如果你调用parameterTest(true),那么它会返回“参数存在...”。

这个是可能的吗?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-10-23 04:53:09

这是一种非常常见的模式。

您可以使用以下命令测试它

代码语言:javascript
运行
复制
function parameterTest(bool) {
  if (bool !== undefined) {

然后,您可以使用这些形式之一调用您的函数:

代码语言:javascript
运行
复制
 parameterTest();
 parameterTest(someValue);

注意不要造成频繁的测试错误

代码语言:javascript
运行
复制
if (!bool) {

因为您无法将未提供的值与false0""区分开来。

票数 105
EN

Stack Overflow用户

发布于 2012-10-23 04:53:21

代码语言:javascript
运行
复制
function parameterTest(bool)
{
   if(typeof bool !== 'undefined')
   {
     alert('the parameter exists...');
   }
   else
   {
     alert('The parameter doesn\'t exist...');
   }
}
票数 13
EN

Stack Overflow用户

发布于 2012-10-23 04:51:46

在JavaScript中,如果您忽略了提供一个参数,它将缺省为undefined

您可以在自己的浏览器控制台中或使用JSFiddle轻松地尝试它。

正如您所说,您可以检查参数是否存在,这样就可以编写一个可以使用参数或不使用参数的函数。然而,JavaScript Garden (一个很棒的资源)建议在大多数其他情况下远离typeof,因为它的输出几乎是无用的(请查看results of typeof的表格)。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13019640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档