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

JavaScript 函数

2015-10-18 22:05 218 查看

JavaScript 函数
函数的声明
    1、函数的声明或声明式函数
     function test() {
                方法体;
                 }
    2、函数表达式
     var test = function() {
                方法体;
                 };
    3、对象式函数
    var test = new Function();

    解析式先找到var和function定义的,再从上往下执行。
    函数的声明在解析的时候就已经声明了;而函数表达式是再执行后再赋值。
2.函数参数与return语句

    function add(x , y){      //其中x,y是形式参数
         return x + y;        //没有返回值时返回undefine
    }
    var sum = add(1 , 2);
    console.log(sum);
3.匿名函数
    function() {
              }
    没有方法名称,只能调用一次,作用是增加作用域。
    function operator(fn) {
             return fn;
             }
    可以返回函数,形参也可以传入函数。
    调用:(function() {
             } ());
4.作用域
    1、允许访问的范围,分为全局和局部,函数是局部的。
    2、var定义的是局部变量。
    3、function fn1(){
             var a = 2;
             fn();
         }
         fn1();                      //fn1()调用fn(),输出1
    函数内部使用到的函数在函数声明时,已经确定了它的作用域。
    4、外部不能够访问函数体内部,内部可以访问外部。
5、第一等公民和函数的提升
    函数与数据其他类型同等地位,为第一等公民。
    提升只会针对声明式,表达式函数只会在赋值的时候将值赋给变量
6、参数的传递
     1、var x = 1, y = 2;
        function fn(x,y){               //值传递
            x = 2;
            y = 3;
        }
        fn(x,y);
        console.log(x + " " + y);      //输出 1  2

    2、 var arr =[1,2,3];
        function fn(arr){                 //"arr"为形参
            arr[0] = 4;                  //址传递
            arr[1] = 5;
            arr[2] = 6;
        }
        fn(arr);
        console.log(arr);             //此时输出值为[4,5,6]

    3、 var arr = [1,2,3];           //值传递
        function fn(arr){
            arr = [4,5,6];
        }
        fn(arr);
        console.log(arr);             //此时输出值为[1,2,3]
    
    针对原始数据类型,值传递到方法内部进行计算。
    针对引用类型,址传递方式。
8.可变参数的函数(arguments)
    函数的arguments是返回一个数组,它包含了传递给当前执行函数的每个参数,arguments的整个长度由arguments.length来指定。
    通过arguments的属性,函数可以很好的处理可变数量的参数。其表现形式和数组一样,不是数值。
    通常情况下,函数里的变量会在执行结束后销毁掉。
    function fn(x,y){
         console.log(arguments);
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: