当我调用带有参数的Javascript函数而不提供这些参数时会发生什么?

时间:2009-12-04 12:31:42

标签: javascript parameters

当我调用带有参数的Javascript函数而不提供这些参数时会发生什么?

5 个答案:

答案 0 :(得分:32)

设置为undefined。你不会得到例外。它可以是一种方便的方法,使您的功能在某些情况下更通用。未定义的计算结果为false,因此您可以检查是否传入了值。

答案 1 :(得分:14)

javascript会将任何缺少的参数设置为值undefined

function fn(a) {
    console.log(a);
}

fn(1); // outputs 1 on the console
fn(); // outputs undefined on the console

这适用于任意数量的参数。

function example(a,b,c) {
    console.log(a);
    console.log(b);
    console.log(c);
}

example(1,2,3); //outputs 1 then 2 then 3 to the console
example(1,2); //outputs 1 then 2 then undefined to the console
example(1); //outputs 1 then undefined then undefined to the console
example(); //outputs undefined then undefined then undefined to the console

另请注意,arguments数组将包含所提供的所有参数,即使您提供的功能超出了函数定义所需的数量。

答案 2 :(得分:7)

与每个人的答案相反,你可以调用一个函数,该函数似乎没有带参数的签名中的参数。

然后,您可以使用内置的arguments全局访问它们。这是一个可以从中获取详细信息的数组。

e.g。

function calcAverage() 
{ 
   var sum = 0 
   for(var i=0; i<arguments.length; i++) 
      sum = sum + arguments[i] 
   var average = sum/arguments.length 
   return average 
} 
document.write("Average = " + calcAverage(400, 600, 83)) 

答案 3 :(得分:3)

除上述注释外,参数数组的长度为零。可以检查它而不是函数签名中指定的参数。

答案 4 :(得分:-8)

一旦尝试使用其中一个参数,就会出现异常。