函数

函数
##1. 函数声明
    1.1 关键字 function
        eg: function test(){
                console.log("hello");
            }
    1.2 函数表达式
            1.2.1 声明式函数: (预解析时加载)
                eg: function test(){
                        console.log("hello");
                    }
            1.2.2 函数表达式: (赋值操作  程序执行的时候加载)
                eg: var test = function() {     
                        console.log('hello')
                    }
    1.3 函数重复声明  -->  后面会覆盖前面的声明
        function fn() {
            console.log(1);
        }
        function fn() {
            console.log(2);
        }
        fn();    //2
##2. 形参、实参、return语句
    function add(a,b){     -->   这里的a,b是形参
        return a + b       -->   返回值 
    }
    add(1,2)   //3           -->   这里的1,2是实参
    形参:在定义时候命名的参数,形式参数,形参  在预解析的时候进行初始化的。
    实参:调用传递进入function中的参数,实际参数,实参 。
##3. 立即调用函数 IIFE
    1.(function(){}());
    2.(function(){})();
    3.~~ function(){};
    4.!! function(){};
## 4. 第一等公民
    javascript的函数与其他数据类型处于同等的地位,可以使用其他数据类型的地方都能使用函数,函数与其他数据类型是平等的。
##5. 变量提升:(一个块内)
    全局预解析  --> 程序正式执行之前准备工作  js引擎预览代码,不执行代码, 先查找出var声明的变量,默认var变量值undefined;
               --> 程序正式执行之前准备工作  查询声明式函数  
    局部预解析  -->  执行到函数时  进行函数内部预解析  参数、var、function
##6. 函数作用域
    函数有全局作用域和函数作用域
        1.在函数外部声明的变量是全局变量,函数内部可以读取使用;
        2.在函数内部定义的变量,外部不能读取使用,称为局部变量;
        3.局部变量,会在该作用域内覆盖同名的全局变量

posted @ 2017-04-18 21:56  Old_boy  阅读(149)  评论(0)    收藏  举报