这个PHP语法在JavaScript中存在吗?function(var = null)

3
在PHP中,如果参数未传递,则我会使用函数设置变量为null。例如:
函数调用:
myExample(8);

函数定义:

function myExample($var1, $var2 = null);

预期结果:

$var 1 = 8;
$var 2 = null;

类似的语法在JavaScript中存在吗?我尝试直接使用,但没有成功。
3个回答

4
简而言之,不行。你不能在函数声明中指定默认值。
但是:
function myExample($var1, $var2) {
}

myExample(1);

在函数内部,会导致$var2变成undefined


我认为你可以像我在示例中所做的那样去做:虽然不完全相同,但具有相同的效果。 - Nicola Peluchetti

1
在JavaScript中,您可以传递任意数量的参数到函数中,而无需先声明它们。您可以使用变量arguments访问它们,它类似于一个数组(它有一个length属性,但实际上是一个对象)。
例如:
function yourfunction (var1){
    var var2 = null;
    if (arguments.length>1){
         var2 = arguments[1];
    }
}

这很像你在php中所做的,因为如果你不传递第二个参数,var2将会是null,否则它等于第二个参数。

查看这里以获取完整的参考资料

编辑一个典型的例子是一个函数,可以对所有参数进行求和,而不管它们的数量。我在几本JavaScript书中都找到了这个例子。如果你想阅读更多的内容,一些好的书籍包括:Stoyan Stefanov所著的面向对象的JavaScript和JavaScript模式以及常见的《JavaScript: The Good Parts》

  function sumValues() {
   var sum = 0;
   for (var i = 0; i < arguments.length; i++) {
    sum += arguments[i];
   } 
   return sum;
  }

太棒了!这将来会很有用。感谢您的帮助! - dcoffey3296

1

不,它不会。

为了允许可选参数,只需指定它们。如果未提供它们,则将其定义为未定义。

例如:

Func = function(arg, opt_arg)
{
    Alert(arg + ' ' + opt_arg);
}
Func('test');// 输出 "test undefined"

参数不像 PHP 中那样是强制性的。

您可以简单地这样做

 
If(opt_arg  != 'undefined)

检查用户是否提供了它


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接