为什么这个功能会提示 10?
function b (x, y, a) {
arguments[2] = 10;
alert(a);
}
b(1, 2, 3);
javascript数组是零索引的,参数是指作为参数传递给函数的参数:
arguments[2] === a === 10
和
1 === x === arguments[0];
2 === y == arguments[1];
(和三等式运算符不是一个错误)
因为您将第三个参数设置为 10。来自MDN:
您可以使用 arguments 对象在函数中引用函数的参数。该对象包含传递给函数的每个参数的条目,第一个条目的索引从 0 开始。例如,如果一个函数传递了三个参数,您可以按如下方式引用该参数:
arguments[0] arguments[1] arguments[2]
arguments 对象是所有函数中可用的局部变量;不能再使用作为 Function 属性的参数
使用此参考进一步
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Functions_and_function_scope/arguments
此函数接受三个输入,丢弃前两个并在模式弹出窗口中显示最后一个,但在将值分配10
给 index 2
of之前arguments
- 有效地将输入设置a
为10
from 3
- 然后它退出范围而不返回任何内容。