资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,Web,编程基础,Chapter,5,-,流程,控制语句,陆莉莉,10/2/2024,提纲,函数定义和调用,匿名函数,嵌套函数,函数作为参数,随机数生成,作用域规则,3,功能,1,程序,1,程序,2,功能,1,功能,1,函数,图示:,JavaScript,中的程序模块,JavaScript,中的模块,方法:属于特定的,JavaScript,对象,函数:所有其他函数,Examples:,total+=,parseFloat,(,inputValue,);,total+=,parseFloat,(s1+s2);,JavaScript,中的程序模块,函数定义的格式:,function,函数名,(,参数列表,),声明和语句,函数名:可以是任何有效的标识符,5.5,函数定义和调用,5.5,函数定义和调用,函数如何工作,函数调用,指定函数名,并提供被调用函数中的参数。,格式:函数名,(,参数列表,),5.5,函数定义和调用,调用,square,函数,传递值,x,把变量,x,的值传递给变量,y,.,把,y*y,返回给调用函数,5.5,函数定义和调用,课堂练习,课堂练习,不带参数的函数,function,myfunction,(),window.alert,(,您好,!,);,通过点击这个按钮,可以调用一个函数。该函数会提示一条消息。,函数的执行过程:,函数入口点:调用函数的语句,函数名(参数列表),函数结束点:函数体的右括号“,”,return,;,return,表达式;,注意:,return,表达式;,将表达式的值返回给调用该函数的程序。,5.5,函数定义和调用,5.5,函数定义和调用,用户通过,prompt,对话框输入三个数,5.5,函数定义和调用,调用,maximum,函数,传递变量,value1,value2 and value3,的值。,变量,x,y,和,z,得到变量,value1,value2 and value3,的值,Max,方法返回两数中的较大者,。,5.5,函数定义和调用,课堂练习,计算从,1,到,10,的整数的立方和(整数的立方使用函数,cube,),5.6,参数数目可变的函数,参数数目可变的函数,函数体中,通过特殊对象,arguments,访问参数列表,arguments,是由各个参数组成的一个数组对象,如,arguments0,获取第一个参数的值。,arguments,对象的,length,属性可以得到传递给函数的参数的数目。,5.6,参数数目可变的函数,参数数目可变的函数示例,function,argTest,(),var,iArgNum,=,arguments.length,;,var,sRetValue,=,向函数传递了,+,iArgNum,+,个参数:,;,for(var,iNum,=0;,iNum,iArgNum,;,iNum,+),sRetValue,+=,第,+(,iNum,+1)+,个参数:,+,argumentsiNum,+;,return,sRetValue,;,var,sMsg,=argTest(12,36,true,Hello World,new Date();,document.writeln(sMsg,);,5.7,匿名函数,格式:,var,func,=,function(params,),statements;,与以下函数等价:,function,func(x,y),return x*y;,除了将函数赋给一个变量之外,函数字面量和声明式函数类似,5.7,匿名函数,格式:,var,variable=new Function(“param1”,”param2”,”,paramn”,”functionbody,”);,与以下声明式函数等价:,function variable(param1,param2,paramn,),functionbody,;,5.7,匿名函数,示例:,var,func,=new,Function(“x,”,”y”,”return x *y”);,与以下声明式函数等价:,function,func,(x,y),return x*y;,5.7,匿名函数,function,buildFunction,(),var,func,=,prompt(Enter,function body:,);,var,x=,prompt(Enter,value of x:,);,var,y=,prompt(Enter,value of y:,);,var,op=new,Function(x,y,func,);,var,theAnswer,=,op(x,y);,alert(Function,is:+,func,);,alert(x is:+x+y is:+y);,alert(The,answer is:+,theAnswer,);,some content,5.7,匿名函数,function,funcObject(x,y,z,),alert(z(x,y,);,function,testFunction,(),/third parameter is function,funcObject(3,4,function(x,y)return x*y),some content,5.7,匿名函数,var,fnFunction,=function(iNum1,iNum2),var,iNum3=iNum1*,iNum1,+iNum2*,iNum2,;,return iNum3;,var,sResult,=62+72=;,sResult,+=fnFunction(6,7)+;,document.writeln(sResult,);,var,fnFunction,=new Function(iNum1,iNum2,return iNum1*,iNum1,*,iNum1,+iNum2*,iNum2,*,iNum2,;);,var,sResult,=63+73=;,sResult,+=fnFunction(6,7)+;,document.writeln(sResult,);,5.8,函数作用域,程序中可以引用该标识符的范围,全局作用域,函数作用域:,从声明标识符的函数的,(),开始,到该函数的(,)结束;,局部变量隐藏全局变量。,5.8,函数作用域,5.8,函数作用域,5.9,随机数生成,随机数的生成:,Math.random,(),var,randomValue=Math.random();,方法,random,直接产生的随机数总是在以下范围,0.0=,Math.random,()=,1,;-counter)factorial*=counter;,递归方法:,5.10,递归,5!,5*4!,4*3!,3*2!,2*1!,1,(a),递归调用过程,.,(b),每次递归调用的返回值,5!,5*4!,4*3!,3*2!,2*1!,1,Final value=120,4!=4*6=24 is returned,5!=5*24=120 is returned,3!=3*2=6 is returned,1 returned,5.10,递归,5.10,递归,测试基本问题,(,方法,factorial,可以解决的问题,),调用,factorial,方法,函数的应用,num1,num2,result,定义函数,JavaScript,代码,function,compute(op,),var,num1,num2;,num1=parseFloat(document.myform.num1.value);,num2=parseFloat(document.myform.num2.value);,if(op=+),document.myform.result.value,=num1+num2 ;,if(op=-),document.myform.result.value,=num1-num2 ;,if(op=*),document.myform.result.value,=num1*num2 ;,if(op=/&num2!=0),document.myform.result.value,=num1/num2 ;,定义函数,compute(),,完成计算的功能。,op,参数代表运算符号,调用函数,第一个数,第二个数,计算结果,小 结,本章主要讲述了,JavaScript中的程序模块,,,函数定义,,,随机数生成,,作用域规则及递归。,
展开阅读全文