JavaScript中的函数参数详解

JavaScript中的函数参数与大多数其他语言的函数参数是完全不同的,且看以下详细解释:

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


举例:

<span style="font-family:Arial;font-size:14px;"><!DOCTYPE html>
<html>
<head>
	<title>这是JavaScript</title>
	<script type="text/javascript">
       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函数不能实现重载,这是规定,记住就可以了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值