您的位置:首页 > Web前端 > JavaScript

Javascript(函数)

2015-10-18 20:32 639 查看
一、函数的声明
- 声明式
    
    function functionName(){  

  
    }

- 表达式

    var functionName = function(){  

    };   

- 对象、构造

    var functionname = new function(); 
二、函数的调用
-    functionname();

    变量(声明式函数)的声明会被提升到作用域的最前面,即使写代码的时候是写在最后面,也还是会被提升至最前面。    

    多次声明同一个函数时,后面会覆盖前面的声明。

-    形式参数和return
    
     function a(x,y) {

        return x + y;  //返回值

    }
    
    x,y是形式参数。

-    立即执行调用的表达式(匿名函数)

    1.(function(){}());
    

    2.(function(){})();

三、函数的作用域(变量存在的范围)
    1、全局作用域

    2.局部作用域(函数作用域)

-    function 内部可以访问外部的变量,外部不能访问内部声明的变量

-    在本作用域里没有找到相应的变量时,会跳至上一级作用域继续寻    找,再赋值。

    function fn(){

        a = 1;

    }

    fn();

    console.log(a);

    此时可以访问函数内部的变量,因为a = 1是个全局变量。如果是var a = 1则不能访问,是局部变量。

                                        
    var fn = function (){

        console.log(2);

    }

    fn(1);

                                            
     function fn(){

        console.log(1);

    }
    
    此时输出值为2,函数内部使用声明的时候已经确认了变量的作用域

四、参数值的传递

-    针对原始数据类型,是将它的值传入内部

    var a = 1;

    function foo(x) {

     a = 3;

    }

    foo(a);

    console.log(a);
    
    此时输出为1,var a = 1,是个数字类型,所以将值传入function内部,不受其内部 a = 3的影响。

-    针对引用数据类型,传递的是它的地址;
    
    var b = [1,2,3];

    function foo(x) {

    b = [4,5,6];

    }

    foo(b);

    console.log(b);

     
    此时输出为[4,5,6],数组是个对象类型,属于引用类型,引用类型是将它的地址传入内部,内部赋值让它形成一个新数组。

五、属性

    1.name 
    声明式函数中的函数名

    2.length
    返回函数的参数个数
六、 arguments (指向实参对象的引用)
    function fn(){
    console.log(arguments[0] + arguments[1] + arguments[2])
    }
    fn(3,5,9)
    输出为17,arguments[0] = 3;arguments[1] = 5;arguments[2] = 9;

     arguments是一个存放实参的对象,和数组表现形式一样,但不是数组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: