JavaScript函数学习要点总结(一)
2013-10-22 18:32 盛世游侠 阅读(310) 评论(0) 编辑 收藏 举报1、函数的最大作用是提供代码复用;
2、JavaScript函数是弱类型语言,定义函数时既不要声明函数的返回值,也不要声明函数的参数列表类型;
语法如下:
1 function functionName(parameter-list){ 2 statements; 3 }
3、函数可以有返回值,也可以无返回值。函数运行过程中遇到一条return语句即返回返回值,函数结束;
1 function hello(){ 2 return 6; 3 } 4 5 alert(hello());//输出6;
4、局部函数:在函数A内定义一个函数B,则B为局部函数,局部函数B只能在函数A内调用有效,无法在函数A之外调用,如果在函数A之外调用,将会报未定义错误;
1 function A(){ 2 //定义局部函数B1; 3 function B1(){ 4 document.write("局部函数inner1"); 5 } 6 //定义局部函数B2; 7 function B2(){ 8 document.write("局部函数inner2"); 9 } 10 11 //调用局部函数; 12 B1();//输出"局部函数inner1"; 13 B2();//输出"局部函数inner2"; 14 }; 15 //调用全局函数; 16 A(); 17 //在函数A外部调用局部函数B1; 18 B1();//在firefox的firebug下的控制台中可以看到错误提示“B1 is not defiend”;
5、JavaScript允许传递空参数给函数,但是却不允许使用未定义的变量或函数;传递空参数给函数,虽然会得到undefined值,但是浏览器不会报错;但如果使用未定义的变量或函数,浏览器会报未定义错误;
6、如果将一个对象的某个实例方法用“对象名.方法名()”的形式当作函数调用,则既不会得到undefined值,也不会报未定义错误,而是会报“XX is not a function”错误;
7、匿名函数的创建方式:
方式一:使用new关键字加Function对象创建;
var f = new Function('name','document.write(name)'); //Function对象构造器的参数可以不受限制。 //Function可以接受一系列的字符串参数,其中最后一个参数是函数的执行体;执行体的各语句以分号隔开;
方式二:直接创建;
var f = function(name){document.write(name)}; f('yeeku');
8、可以将一个函数赋给一个普通变量,将一个函数abc赋给一个普通变量f后,通过f()即可调用abc函数,而abc()将失去作用,无法调用,如果调用,将报abc未定义错误;但是在IE中的IE8以下版本的浏览器中却不一样,在IE8以下的浏览器中将一个函数赋给一个普通变量后,将会得到两个一样的函数,两个都可以调用;
var f = function abc(name){ document.write(name); } f('yeku');//输出yeku; abc('yeku');//在firefox中报未定义错误,在IE中输出yeku;
9、函数的局部变量、实例属性和静态属性;
局部变量:在函数中以普通方式声明的变量,包括以var或不加任何前缀声明的变量;
局部变量只能在函数内调用,在函数外调用将会报未定义错误;
实例属性:在函数中以this前缀修饰的变量;实例属性是属于单个对象的,只有对象才可以调用,类如果调用实例属性将会出现未定义错误;
静态属性:在函数中以函数名为前缀修饰的变量;
静态属性是属于类的,只有类才可以调用,对象如果调用静态属性将会出现未定义错误;