js_day13---js函数

来源:互联网 发布:51聊天软件 编辑:程序博客网 时间:2024/05/04 06:01

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语言一样)

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

//定义一个函数testfunction 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);//调用时参数可以是字符串









原创粉丝点击