您的位置:首页 > Web前端 > JavaScript

JavaScript中的函数参数详解

2016-10-20 15:03 183 查看
JavaScript中的函数参数与大多数其他语言的函数参数是完全不同的,且看以下详细解释:

1.JavaScript中调用已经定义好的参数时,函数不介意传进来多少参数,也不介意传进来的参数是什么类型。

举例:

<span style="font-family:Arial;font-size:14px;"><!DOCTYPE html>
<html>
<head>
<title>这是JavaScript</title>
<script type="text/javascr
4000
ipt">
function args(){
alert(arguments.length);
}
<span style="color:#ff0000;"> args("s","b");
args("s");
args();</span>
</script>
</head>
<body>
</body>
</html></span>








说明:
以上三种函数调用方式args("s","b");args("s");args();都是可以的。也就是说,即便你定义的函数不接收任何参数,调用函数的时候也未必不能传进来任何参数;或者说,当你定义的函数只接收两个参数,然而调用函数的时候你可以不传入参数,或着传入一个参数,两个参数,三个参数等等都是可以的。以上的函数调用,结果为什么是2,1,0,且看下面继续解释此问题

2.接着说到的这个问题是需要重点理解的。实际上,JavaScript函数的参数在内部是用一个数组来表示的,函数想接收参数的时候,始终接收到的是这个数组。那么如何获取数组元素呢?实际上,在函数体内,可以通过arguments对象访问这个参数数组,第一个元素是arguments[0],第二个元素是arguments[1],以此类推。

举例:

<span style="font-family:Arial;font-size:14px;"><!DOCTYPE html>
<html>
<head>
<title>Function Example 5</title>
<script type="text/javascript">
function sayHi() {
alert("Hello " + arguments[0] + ", " + arguments[1]);
}

sayHi("Nicholas", "how are you today?");
</script>
</head>
<body>

</body>
</html></span>




说明:

sayHi("Nicholas", "how are you today?");表明函数接收到的第一个参数arguments[0]的值是"Nicholas,",函数接收到的第二个参数arguments[1]的值是"how are you today?"

3.arguments对象可以和命名参数一起使用,arguments对象的值和命名参数的值保持同步。 

举例:

<span style="font-family:Arial;font-size:14px;"><!DOCTYPE html>
<html>
<head>
<title>这是JavaScript</title>
<script type="text/javascript">
function args(num1,num2){
document.write(<span style="color:#ff0000;">num1+num2</span>+"\n");
document.write(<span style="color:#ff0000;">arguments[0]+num2</span>+"\n");
document.write(<span style="color:#ff0000;">num1+arguments[1]</span>);
}
args(10,20);
</script>
</head>
<body>
</body>
</html></span>



说明:

num1和arguments[0]的值都是10,num2和arguments[1]的值都是20,。但是,num1和arguments[0]所占用的内存空间是独立的,只是它们的值会同步显示

4.还应注意一点,arguments对象的长度是由传入的参数的个数来决定的,而不是由定义函数时命名参数的个数来决定

<span style="font-family:Arial;font-size:14px;"><!DOCTYPE html>
<html>
<head>
<title>这是JavaScript</title>
<script type="text/javascript">
function <span style="color:#ff0000;">args(num1,num2)</span>{
document.write(arguments.length);
}
<span style="color:#ff0000;">args(10,30,40);</span>

</script>
</head>
<body>
</body>
</html></span>



说明:

传入了三个参数,因此,数组arguments的长度为“3”

5.没有传递值的命名参数的默认值是undefined
                                   

举例:

<span style="font-family:Arial;font-size:14px;"><!DOCTYPE html>
<html>
<head>
<title>这是JavaScript</title>
<script type="text/javascript">
function args(num1,num2){
document.write(num1+"\n");
<span style="color:#ff0000;">document.write(num2+"\n");</span>
}
args(10);

</script>
</head>
<body>
</body>
</html></span>



说明:
number2已定义,但是没有传值,故默认赋值为undefined

6.最后,值得一提的是,JavaScript函数不能实现重载,这是规定,记住就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息