深入理解JS函数的参数(arguments)的使用
作者:异步漫步时间:2026-10-30 07:38:09浏览:562
本文深入解析JavaScript中函数的arguments对象,区分期望参数与实际传递参数的获取方式。通过代码示例展示如何遍历arguments,并强调其作为类数组对象的特性,指出不能直接使用数组方法如shift或push,且索引仅作为属性访问。
arguments对象的基本概念
在JavaScript函数内部,可以通过arguments对象来访问传入的参数。
参数的调用涉及两种概念:
1、期望参数(即函数定义时声明的参数)。
2、实际传递参数(即调用函数时真正传入的参数)。
期望参数与实际参数的应用示例
具体应用示例如下:
function Test(a, b){
var i, s = "Test函数有";
var numargs = arguments.length; // 获取实际被传递参数的数值。
var expargs = Test.length; // 获取期望参数的数值,函数定义时的预期参数个数(有a和b 2个参数)。
s += (expargs + "个参数。");
s += "\n\n"
for (i =0 ; i < numargs; i++){ // 获取参数内容。
s += " 第" + i + "个参数是:" + arguments[i] + "\n";
}
return(s); // 返回参数列表。
}
alert(Test('param1','second param','第三个参数'));
arguments对象的注意事项与代码演示
使用时需注意以下关键点:
arguments是一个类数组对象,并非真正的Array实例,因此无法直接调用shift、push、join等数组特有方法。
在示例中使用的arguments[i]中的i,仅代表arguments对象的属性索引,不应将其等同于标准数组的下标进行数组操作。
代码演示如下:
<html>
<head>
<script language="javascript">
function reloadList(){
if(typeof arguments[0] == "function"){
arguments[0].call(this);
arguments[0]();
}
if(typeof arguments[0] == "string")
alert(arguments[0]);
if(typeof arguments[0] == "number")
alert(arguments[0]);
if(typeof arguments[0] == "undefined")
alert(arguments[0]);
if(typeof arguments[0] == "boolean")
alert(arguments[0]);
if(typeof arguments[0] == "null")
alert(arguments[0]);
}
reloadList(function(){});
</script>
</head>
<body>
</body>
以上关于JS函数arguments对象的深入解析即为全部内容,希望能为读者提供参考与支持。
作者最新文章
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
JS对象数组转字符串为什么推荐用JSON.stringify()
2026-11-05 09:40:31
