JavaScript 函数参数和 arguments 对象详解
以下代码展示了 JavaScript 中函数参数和 arguments 对象之间的关系,并解释了每个 alert 语句的输出结果:
function test(x, y, z) {
alert(test.length);
alert(arguments.length);
alert(arguments.callee === test);
alert(arguments[2]);
}
test(10, 20);
A. 2, 3, true, 0
B. 3, 3, false, 20
C. 3, 2, true, undefined
D. 2, 3, false, 10
正确答案: **C. 3, 2, true, undefined**
解释:
test.length表示函数定义时的参数数量,这里为 3。arguments.length表示实际调用函数时传入的参数数量,这里为 2。arguments.callee === test比较 arguments 对象中的 callee 属性与函数本身,结果为 true,因为 callee 属性指向当前正在执行的函数。arguments[2]访问 arguments 对象中的第三个参数,由于实际只传入了两个参数,因此结果为 undefined。
总结:
- arguments 对象是一个类数组对象,包含所有传递给函数的参数。
- arguments.length 表示实际传递给函数的参数数量。
- arguments.callee 指向当前正在执行的函数。
原文地址: https://www.cveoy.top/t/topic/pKe4 著作权归作者所有。请勿转载和采集!