引言:

上一篇博客,小编提到了引用类型,本篇博客将对引用类型三大家族中的函数家族进行一个总结。

概述:

函数的定义,小编不在赘述,本篇博客主要总结俩部分知识,一:函数的嵌套和递归;二:JavaScript五大系统函数的用法。

内容:

一:函数的嵌套与递归:

                 1  嵌套:JavaScript支持函数的嵌套定义,即在一个函数内部定义和使用另外一个或多个函数,嵌套定义是JavaScript语言独有的特性。

                   (1)语法格式:

<pre name="code" class="html">function box()
                               {
 	                            //函数box()的一条或多条语句,包括函数box1()的定义。
	                               function box1(){
		                        //函数box1()的一条或者多条语句,可以使用函数box()中声明的变量。
	                               }
                               }
               本语法结构中,box1()是内部函数,box()是外部函数。内层函数可以使用外层函数中定义的变量,但
            外层函数不能使用内层函数定义的变量。采用嵌套后,其他函数不能直接访问内层函数,只能通过外层函
            数来访内层函数,但是外层函数可以调用本身的内层函数,这样实现了信息的隐藏。



<pre name="code" class="html"><!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UFT-8"/>
		<title>函数嵌套</title>
		<script type="text/javascript">
		
			function box(){			//定义外层函数
				function box1(){	//定义内层函数
					var a = 'li';
					var b = 'ming';
					return a + b;
				}
				
				var c = 'My name is';
				return c + box();
			}
		</script>
	</head>
	<body>
	
		<div id='me'>
			<script type ="text/javascript">
				document.write("自我介绍:" + box());	//调用函数
			</script>
		</div>
	</body>
</html>





                2 递归:一个函数直接调用该函数本身,或者几个函数之间相互调用。                  

                    (1)语法格式:                       

<pre name="code" class="html">function f1(){					
									
	......							
	f1();  //调用自身				
								
	......						
}									
									
function f1(){        //俩个函数递归调用									
	......							}
	f2();
	......
}
function f2(){
	......
	f1();
	......
}




                    (2)实例分析:                                                

<pre name="code" class="html"><!DOCTYPE html>
		 <html>
		     <head>
		     <meta http-equiv="Content-Type" content="text/html; charset=UFT-8"/>
		        <title>递归函数</title>
			      <script Language="JavaScript">
								
				function f(n){			//定义函数f(n)
										
				document.write("调用f(",n,")</br>");
				if(n==1)
				    return 1;
				else
				    return f(n-1)+5;
				}
									
				document.write("f(5)值为:",f(5)); //调用函数f(n)
									
			      </script>
		     </head>
		     <body>
							
		     </body>
		 </html>



           二 :五大系统函数的用法:

                           1 encodeURI函数:

                         定义:函数可以把字符串作为URI进行编码并返回,例如百度网址字符串‘http://www.baidu.com’,而URL是最常见的一种URI,语法格式:encoudeURI(URIstring)。

                        目的:对URI进行完整编码,但不会对单独ASCII子母和数字进行编码,也不会对在URI中具有特殊含义的ASCII标点符号进行编码。

                        备注:如果URI组件中含有分隔符,如?和#,则应该使用 encodeURIComponent()方法分别对各组件进行编码

                  2 decodeURI函数:

                       定义:对encodeURI()函数编码过的URI进行解码,语法格式:decodeURI(URIstring)

                       目的:实现页面代码类型格式的转换,例如GB2312和UTF之间的转换,实现接收到的参数与原来发送的一致。

                  3 parseInt函数:

                       定义:将一个字符串按照指定的进制转换为一个整数,语法格式:parseInt(numString,[radix]),第一个参数为要进行转换的数字,第二个参数是介于2~36之间的数值

                       备注:JavaScript还有parseFloat()函数,将字符串转换为浮点数。

                  4 isNaN函数:

                      定义:用于检查参数是否为非数字值,语法格式:isNaN(x),如果x是特殊的非数字值NaN(或者能被转换为这样的值),返回值就是true,否则返回false。

                       目的:通常用来检测parseFloat()和parseInt()的结果,判断它们表示的是否是合法的数字,也可以用isNaN()函数来检测算术错误,如用零做除数的情况。


                  5 eval函数:

                      定义:将某个参数字符串解析为一段JavaScript代码执行,语法格式:eval(string)    

                       备注:改方法只接受原始字符串作为参数,否则方法不做任何改变地返回参数。因此不要传递String对象来作为参数。

总结:

函数可以在一个或多个程序中被多次调用,也可以在多人开发的不同程序中应用。函数可以把大段的代码划分为一个个易于维护、易于组织的代码单位,同时实现函数定义和调用的分离,复用性提高了。函数是很好的工具,利用的好函数不仅能提高我们的编码效率,同时也能让我们的代码更加健壮。