全局变量 局部变量 闭包

183 阅读1分钟

变量提升

      /* 变量提升 */
    /* 当下面使用var的时候,会出现变量提升的情况 */
    /* var a => a=undefined (已经声明,但是没有赋值,给了初始值undefined)*/
    /* console.log(a);
    var a ='123'; */

    /*let 不存在变量提升,不能在还没有初始化的时候使用变量,否则就给报错
    下面代码不会被执行*/ 
    /* console.log(a);
    let a ='123'; */

    /* 函数是js里的一等公民 */
    /* 申明function会提升函数到最前面 */
    /* 页面一加载的时候,会先找有没有var和function,
    如果发现 var 就会把变量预定义为undefined,
    如果发现 function 就会把这个方法放最前面 */

    
    
复制代码

全局变量 局部变量

    /* 全局变量,具有全局作用域 在函数外声明的变量,网页上的所有脚本和函数都能访问它*/
    /* 全局变量在页面关闭后才被删除 */
    /* 局部变量,具有局部作用域 (必须使用var )*/
    /* 局部变量在函数运行后就被删除 */
    
    
    
复制代码

闭包

    /* 闭包是指函数可以使用函数之外定义的变量*/

    /* 一个函数可以理解为一个闭包 */
    /* function fn(){
        alert(1)
    } */