腾讯云618限量抢购

JavaScript 函数参数与 arguments 对象

最后更新:2012-05-18 23:53阅读:8885

JavaScript 函数参数与 arguments 对象

JavaScript 函数参数

JavaScript 函数允许没有参数(但包含参数的小括号不能省略),也可以向函数传递参数供函数使用。

下面的例子中,就向 hello() 函数传递了 name 和 age 参数,参数值分别是 小明 和 18。

<html>
<head>
<script type="text/javascript">

function hello(name,age){
    document.write("我叫" + name + ",今年" + age + "岁!");
}

</script>
</head>
<body>
<input type="button" onclick="hello('小明',18)" value="确定" />
</body>
</html>

运行该例子,点击 确定 按钮,输出:

我叫小明,今年18岁!

如上例所示,传入的值是字符串时,需要加上引号;传入的值是数字,不需要加引号。

JavaScript 函数参数错误

JavaScript 函数参数并没有严格要求哪些参数是必选参数,哪些参数是可选参数,因此传入的参数个数是允许不等于定义函数时参数的个数的。

如果在函数中使用了未定义的参数,则会提示语法错误(参数未定义),JavaScript 代码不会正常运行。

如果参数已经定义,但未正确的传入参数时,相关参数值会以 undefined 替换,JavaScript 代码仍正常运行,如下例所示:

<html>
<head>
<script type="text/javascript">

function hello(name,age){
    document.write("我叫" + name + ",今年" + age + "岁!");
}

</script>
</head>
<body>
<input type="button" onclick="hello('小明')" value="确定" />
</body>
</html>

运行该例子,点击 确定 按钮,输出:

我叫小明,今年undefined岁!

JavaScript arguments 对象

在 JavaScript 函数中,有个特殊的 arguments 对象,它以类似数组的形式保存了当前函数调用的参数。因此,开发者无需定义具体的参数名,就可以方便的访问函数参数:

<html>
<head>
<script type="text/javascript">

function hello(){
    document.write("我叫" + arguments[0] + ",今年" + arguments[1] + "岁!");
}

</script>
</head>
<body>
<input type="button" onclick="hello('小明',18)" value="确定" />
</body>
</html>

运行该例子,点击 确定 按钮,输出:

我叫小明,今年18岁!

在 arguments 对象中,arguments[0] 表示第1个参数,arguments[1] 表示第2个参数,依次类推。

提示

通常在函数定义中,为便于代码的可读性,一般不会使用 arguments 对象。在处理不定数目的参数,或者模拟函数重载时,可方便的使用 arguments 对象来处理。

检测参数个数

使用 arguments 对象,可以很方便的检测函数的参数个数。arguments 的 length 属性,即 arguments.length 就是参数的个数:

<html>
<head>
<script type="text/javascript">

function hello(){
    document.write(arguments.length);
}

</script>
</head>
<body>
<input type="button" onclick="hello('小明',18)" value="确定" />
</body>
</html>

运行该例子,点击 确定 按钮,输出:

2

本章节内容共分 3 部分:
  1. 1. JavaScript 函数(function)
  2. 2. JavaScript 函数参数与 arguments 对象
  3. 3. JavaScript 函数的 return 语句
腾讯云618限量抢购