JavaScript教程-28-函数的特殊用法

1:前面讲到了函数的基本的定义和基本的使用,接下来我们看看函数在具体的使用中的一些比较特殊的地方,和其他的语言的一些比较大的差异性。

-- 函数的实参的个数可以和形参的个数不同

-- 函数可以嵌套定义

-- 函数名(引用)可以作为方法的实参

 

2:具体差异看下面的示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>函数的特殊使用</title>
		<script type="text/javascript">
			//1:函数的实参的个数可以和形参的个数不同
			//javascript 语言上感觉不是很严格,很多内容可以省略,比较语句末尾的分号,即使不写也可以执行。
			//当实参的个数和形参的个数不一致的时候,不会报错。
			//定义求三个数的和的方法
			function sum(a , b , c){
				return a + b + c;
			}
			//测试
			//多了一个实参,最后一个参数直接被忽略
			alert(sum(1,2,3,4));//6
			alert(sum(1,2,3));//6
			//下面的三种情况一样,因为c没有被赋值,所以结果是NaN
			alert(sum(1,2));//NaN
			alert(sum(1));//NaN
			alert(sum());//NaN
			
			//2:函数可以嵌套定义
			function fun1(){
				//可以在方法体中再次定义方法,可以认为方法是一个对象。
				//方法体中可以定义变量,和方法,也就是相当于方法的属性和功能。
				//嵌套的方法只能在方法体中使用。
				var a = 1;
				function inner(){
					alert("我是方法体中定义的方法!");
				}
				//使用嵌套的方法。如果想要该嵌套方法被执行,那么必须调用fun1().才可以。
				inner();
			}
			//测试方法的嵌套定义。inner会被执行。
			fun1();
			
			//3:函数名(引用)可以作为方法的实参
			//方法在JavaScript中是对象的实例,那么方法名就是对象的引用,指向对象的指针。
			//方法名可以作为方法的实参使用。
			function fun(){
				alert("hello function");
			}
			//定义了一个方法,有一个参数a,那么上面的方法 fun 可以作为实参传入。
			function test(a){
				//在这里a既然是方法,那么()作为方法的执行符,可以用来让a方法得到执行。
				a();
			}
			//输出 hello function
			test(fun);
			
			//4:补充:
			function test1(a){
				alert(a);
			}
			//如果不加小括号,没有执行符,那么输出的内容为方法的定义的整体代码形式。
			test1(fun);//function fun(){alert("hello function");}
			
			//如果实参传递的是整个方法的调用,那么是将方法的返回值作为实参。
			//也就是该方法会先执行fun() 输出 hello function,然后将该方法的返回值传入
			//因为该方法没有返回值,所以返回undefined。最终输出undefined。
			test1(fun());
		</script>
	</head>
	<body>
	</body>
</html>

 

PS:笔者有大量的学习资料:java、python、大数据、人工智能、前端等。需要的小伙伴请加群:711408961

笔者的b站中有一些教学视频分享。感兴趣的小伙伴可以关注:https://space.bilibili.com/412362068

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值