引言:
上一篇博客,小编提到了引用类型,本篇博客将对引用类型三大家族中的函数家族进行一个总结。
概述:
函数的定义,小编不在赘述,本篇博客主要总结俩部分知识,一:函数的嵌套和递归;二: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对象来作为参数。
总结:
函数可以在一个或多个程序中被多次调用,也可以在多人开发的不同程序中应用。函数可以把大段的代码划分为一个个易于维护、易于组织的代码单位,同时实现函数定义和调用的分离,复用性提高了。函数是很好的工具,利用的好函数不仅能提高我们的编码效率,同时也能让我们的代码更加健壮。