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

Php 您能在Javascript中声明兼性函数参数吗?,php,javascript,function,default-value,Php,Javascript,Function,Default Value,就像在php中一样 <?php function whatever($var='') { } ?> 您可以在javascript中执行此操作吗?在javascript中,您可以调用函数,而不考虑参数 换句话说,声明这样的函数是完全合法的: function func(par1, par3) { //do something } func(); function whatever(arg1) { arg1 = arg1 || 'default value

就像在php中一样

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

}
?>


您可以在javascript中执行此操作吗?

在javascript中,您可以调用函数,而不考虑参数

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

 function func(par1, par3) {

   //do something
  }
 func();
function whatever(arg1) {
  arg1 = arg1 || 'default value';
}
这样称呼它:

 function func(par1, par3) {

   //do something
  }
 func();
function whatever(arg1) {
  arg1 = arg1 || 'default value';
}

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

 function func(par1, par3) {

   //do something
  }
 func();
function whatever(arg1) {
  arg1 = arg1 || 'default value';
}
请记住,如果arg1包含任何错误值,例如
null
未定义的
0
false
NaN
或零长度字符串
”,则将设置“默认值”

在JavaScript函数中,对象也是一个类似数组的对象,它包含传递给函数的参数,因此您甚至可以在不使用输入参数的情况下声明函数,并且在调用它时,可以传递一些参数给它:

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

whatever('foo'); 
编辑:对于仅当默认值确实未定义时才设置默认值(如注释),您还可以执行以下操作:

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

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

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

我不认为你可以直接做到这一点,但有办法做到这一点。由于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);

查看我的答案,了解如何设置默认值,如果它确实未定义。@kangax:哦,是的,我错过了NaN。。。现在添加…:)就我而言,我更喜欢x==未定义;为了避免typeof:)那么这是“是的,您可以设置默认值”还是“否,您不能设置默认值”?我用词不对,我的意思是,您可以添加参数而不必定义它们。答案是肯定的,你可以。不像PHP。