js_day13---js函数

Day13


js函数

      案例:

请大家完成这样一个程序,输入两个数,再输入一个运算符,得到结果。

<html>
	<head>
		<!--一般讲javascript放在head里面-->
		<script language="javascript" type="text/javascript">
			//有些浏览器不识别language或者有些浏览器不识别type.
			//为了兼容,将两个都写进去
			<!--
				//-->//有时候这样写,也是有些浏览器可能存在的问题。
				var num1 = window.prompt("请输入第1个num");
				var num2 = window.prompt("请输入第2个num");
				var operator = window.prompt("请输入运算符");
				num1 = parseFloat(num1);
				num2 = parseFloat(num2);
				var res =0;
				if(operator =="+"){
						res = num1+num2;
				}else if(operator =="-"){
					res = num1-num2;
				}else if(operator =="*"){
					res = num1*num2;
				}else if(operator =="/"){
					res = num1/num2;
				}
				document.write("结果是"+res);
				
			</script>
		</head>
		<body>
			</body>
	</html>


引出一个问题:如果在另外的htm文件(比如a.htm,b.htm,c,htm)中也需要完成这个功能,又该怎么办?

解决方案:函数

函数概念:未完成某一功能的代码集合。

基本语法:

Function函数名(参数列表){

      //代码

      //Return

}

强调:

参数不用写参数类型。

有时候需要返回值,但它不需要再函数名前面写函数返回类型。à不同于java

      à主要原因还是javascript变量类型只有var一种,写不写无所谓,就不写了。

<html>
	<head>
		<script language="javascript" type="text/javascript">
				var num1 = window.prompt("请输入第1个num");
				var num2 = window.prompt("请输入第2个num");
				var operator = window.prompt("请输入运算符");
				num1 = parseFloat(num1);
				num2 = parseFloat(num2);
				
				//如何调用函数				
				document.write("res="+calc(num1,num2,operator));
				
				//自定义函数
				//命名:驼峰法,下划线
				function calc(num1,num2,operator){
					var res =0;
					if(operator =="+"){
							res = num1+num2;
					}else if(operator =="-"){
						res = num1-num2;
					}else if(operator =="*"){
						res = num1*num2;
					}else if(operator =="/"){
						res = num1/num2;
					}
					return res;
				}
			</script>
		</head>
		<body>
			</body>
	</html>

那么如果其他html文件需要引用这个函数呢?

<scriptlanguage=”javascript” src=路径 ></script>

把上面的函数单独拿出来,写到js文件中,然后在需要的地方引入即可。

Html:

<html>
	<head>
		<!--引入js文件-->
		<script language="javascript" src ="myfunction.js" ></script>
		<script language="javascript" type="text/javascript">
				var num1 = window.prompt("请输入第1个num");
				var num2 = window.prompt("请输入第2个num");
				var operator = window.prompt("请输入运算符");
				num1 = parseFloat(num1);
				num2 = parseFloat(num2);
				
				//如何调用函数				
				document.write("res="+calc(num1,num2,operator));
				
			</script>
		</head>
		<body>
			</body>
	</html>

Myfunction.js:

function calc(num1,num2,operator){
					var res =0;
					if(operator =="+"){
							res = num1+num2;
					}else if(operator =="-"){
						res = num1-num2;
					}else if(operator =="*"){
						res = num1*num2;
					}else if(operator =="/"){
						res = num1/num2;
					}
					return res;
				}

js函数分类

      自定义函数、系统函数(经常查看js帮助文档)

 

js自定义函数

      前面已经说过

 

js自定义函数调用方式

      ①普通调用,通过函数名调用(同java语言一样)

      ②通过指向函数的变量去调用

//定义一个函数test
	function test(val){
					
		window.alert("你输入的是:"+val);	
	}
	test("helloWorld");//通过函数名调用
	window.alert(test);	//这时会把函数输出来	
	var myvar = test;//相当于指针一样
	myvar("My name is Gavin");

关于接收函数返回值的问题

//如果test函数没有返回值,但是你又接收了,则返回的就是undefined

             //如果有返回值,则返回的是什么就是什么。

	var myvar = test("abc");
	window.alert(myvar);

●函数调用过程

				//abc是一个函数,它接收一个数值,
				function abc(num1){
					if(num1>3){
							abc(--num1);//递归
						}	
						document.writeln(num1);

abc(5),内存分析图如下:每调用一个函数,就新开辟一个栈空间。

 

●函数深入使用

      1、函数的参数列表可以是多个

      2、参数列表可以是多个,并且数据类型可以是任意的类型

      3js支持参数个数可变的函数,天然支持。arguments

      4js支持创建动态函数(后面再讲)

      5、但javascript不支持重载!!所以函数名一定要不一样。

案例:

//编写一个函数,可以接受任意多个数,并计算他们的和
				function add(){
						//在js中有一个arguments,可以访问所有的传入值
						//window.alert(arguments.length);
						var res = 0;
						//遍历所有的参数
						for(var i =0;i<arguments.length;i++){
								res += arguments[i];
						}
						window.alert(res);
				}


调用:

		add(2,3,900);
		add(3,"hello world",5);//调用时参数可以是字符串









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值