javascript学习笔记(四)function函数部分
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
Jscript支持两种函数:一类是语言内部的函数(如eval()),另一类是自己创建的。
在JavaScript函数内部声明的变量(使用var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
函数的调用方式
1、普通调用:functionName(实际参数...)
2、通过指向函数的变量去调用:
var myVar=函数名;
myVar(实际参数...);
返回函数的函数
1.当函数无明确返回值时,返回的值就是"undefined"。
2.当函数有返回值时,返回值是什么就返回什么。
我们可以通过使用return语句实现将函数返回调用它的地方。
在使用return语句时,函数会停止执行,并返回指定的值。
函数通常会返回一个唯一值,那么这个值也可能是另一个函数:
<scripttype="text/javascript"> varbox=function(){ vara=1; returnfunction(){ alert(a++) } } alert(box());//弹出"function(){alert(a++)}" </script>
在这里,我们只需将返回值赋值给某个变量,然后就可以像使用一般函数那样调用它了:
<scripttype="text/javascript"> varbox=function(){ vara=1; returnfunction(){ alert(++a) } } varnewFunc=box(); newFunc();//2 </script>
如果想让返回的函数立即执行,亦可以使用box()()来执行这段代码。
ECMAScript所有函数的参数都是按值传递的,言下之意就是参数不会按引用传递。
PS:如果存在按引用传递的话,那么函数里的那个变量将会是全局变量,在外部也可以访问。
(1)值类型:数值、布尔值、null、undefined。
(2)引用类型:对象、数组、函数。
引用类型值:指的是那些保存在堆内存中的对象,意思是,变量中保存的实际上只是一个指针,这个指针执行内存中的另一个位置,由该位置保存对象;
创建匿名函数
function(){ return‘Lee'; //单独的匿名函数是无法运行的,就算能运行也无法调用,因为没有名字 }
这种匿名函数的用法在JQuery中非常多。直接声明一个匿名函数,立即使用。用匿名函数的好处就是省得定义一个用一次就不用的函数,而且免了命名冲突的问题,js中没有命名空间的概念,因此很容易函数名字冲突,一旦命名冲突以最后声明的为准。
通过自我执行来执行匿名函数:
//通过自我执行来执行匿名函数
<scripttype="text/javascript"> (function(){ //(匿名函数)();第一圆括号放匿名函数,第二个圆括号执行 alert('Lee'); })(); </script>