繁体   English   中英

你能在Javascript中声明兼性函数参数吗?

[英]Can you declare facultative function arguments in Javascript?

就像你可以在PHP中

<?php
function whatever($var='') {

}
?>

你能用javascript做到吗?

如果要为参数设置“默认”值,可以执行以下操作:

function whatever(arg1) {
  arg1 = arg1 || 'default value';
}

请记住,如果arg1包含任何有价值的值,则会设置'默认值',如nullundefined0falseNaN或零长度字符串""

同样在JavaScript函数中你有arguments对象,它是一个类似于数组的对象,它包含传递给函数的参数,因此你甚至可以声明一个没有输入参数的函数,当你调用它时,你可以传递一些函数:

function whatever() {
  var arg1 = arguments[0];
}

whatever('foo'); 

编辑:只有在真正未定义时才设置默认值,如@bobbymcr注释,你也可以这样做:

function whatever(arg1) {
  arg1 = arg1 === undefined ? 'default value' : arg1;
}

在javascript中,无论参数如何,您都可以调用函数。

换句话说,声明这样的函数是完全合法的:

 function func(par1, par3) {

   //do something
  }

并称之为:

 func();

我认为你不能直接这样做,但有办法实现这一目标。 由于JavaScript允许您省略函数调用中的参数,因此可以检查参数是否未定义,如果是,则为其提供默认值:

function DoSomething(x, y, z)
{
    // set default values...

    if (typeof x == "undefined")
    {
        x = 5;
    }

    if (typeof y == "undefined")
    {
        y = "Hi";
    }

    if (typeof z == "undefined")
    {
        z = 3.14;
    }

    // ...
}

您可以尝试通过以下方式调用它,以查看缺少参数时分配的默认值:

DoSomething();
DoSomething(4);
DoSomething(4, "X");
DoSomething(4, "X", 7.77);

在JS中,默认情况下不需要参数。 对于$ arg =''实现,您可以使用

function whatever(vars) {  
   vars = vars || 'default';  
   /* your code */    
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM