关于Javascript函数参数的问题

sim*_*ed. 36 javascript function

我试着写一些javascript函数并意识到这一点

function testFunction(input_1, input_2, input_3) {
       alert("alert");
}
Run Code Online (Sandbox Code Playgroud)

但是,当我调用这样的函数时:

<input type="button" value="click" onclick="testFunction("1", "2")">
Run Code Online (Sandbox Code Playgroud)

为什么即使只有两个参数它仍然可以工作?

SLa*_*aks 37

无论函数的定义如何,您都可以使用任意数量的参数调用Javascript函数.

任何未通过的命名参数都将是undefined.

可以通过arguments类似数组的对象访问额外的参数.

  • @simplified.:不,参数将始终按顺序分配给参数。如果你想“跳过”一个,你必须传递另一个值,比如“null”。 (2认同)

Cha*_*tin 2

因为 javascript 将你的参数视为数组;如果您从未超出第二项,它永远不会注意到缺少参数。

  • 更具体地说,它是“arguments”数组。函数声明中的命名参数只是指向“arguments”成员的指针 (4认同)