美文网首页
作用域和闭包

作用域和闭包

作者: 箫筱乐 | 来源:发表于2018-10-16 11:50 被阅读1次

变量提升(预解析)

javascript的函数作用域是指在函数内声明的所有变量在函数体内始终是可见的,有意思的是,这意味着变量在声明之前甚至已经可用。JavaScript的这个特性被非正式地称为声明提前,即JavaScript函数里声明的所有变量(但不涉及赋值)都被"提前"至函数体的顶部。
eg:将函数内的变量声明“提前”至函数顶部,同时变量初始化留在原来的位置:

    var a = 10
    function fn(){
      console.log(a)   //undefined
      a =20
      console.log(a)   //20
    }

闭包

函数可以通过作用域链相互关联起来,函数体内部的变量可以保存在函数作用域内。
为什么要使用B包?
1.因为B包可以访问到函数内部的变量并且会将这些变量的值一直保存在内存中。
2.因为B包引用函数不会被清除,可能会造成内存泄漏的问题,贴别是IE
B包的特性?
1.函数嵌套函数
2.函数内部可以引用外部的参数和变量
3.参数和变量不会被垃圾机制回收

    function fn(){
         var a = 0
         function fn1(){
             a++
             console.log(a) 
         }
         fn1()
         fn1()
    }
   fn()

相关文章

  • 作用域和闭包

    目录 概述 作用域编译过程词法作用域全局作用域函数作用域 闭包循环和闭包闭包的用途性能 总结 概述 作用域和闭包一...

  • javaScript门道之闭包

    闭包的学习路径:变量的作用域 -> 闭包的概念 ->闭包的应用 1.变量的作用域 变量的作用域分为作用于全局和作用...

  • 2023-01-12

    变量提升调用栈块级作用域作用域链和闭包 闭包 => 作用域链(词法作用域) => 调用栈(栈溢出) => 上下文...

  • 闭包(closure)

    ● 闭包基础 ● 闭包作用 ● 闭包经典例子 ● 闭包应用 ● 闭包缺点 ● 参考资料 1、闭包基础 作用域和作...

  • 2018-01-07 关于javascript闭包和作用域的理解

    关于 javascript 闭包的一些思考 作用域 词法作用域 函数作用域 块作用域 闭包 什么是作用域? 作用域...

  • js作用域、闭包

    闭包 闭包作用 全局 局部 作用域链

  • 浓缩解读《JavaScript设计模式与开发实践》③

    三、闭包和高阶函数 3.1 闭包 3.1.1 变量的作用域 所谓变量的作用域,就是变量的有效范围。通过作用域的划分...

  • js闭包的理解

    什么是闭包 通俗的来讲,个人觉得闭包就是延长变量作用域的函数。众所周知js的作用域分为全局作用域和链式作用域。在函...

  • 14.JS基础之作用域与闭包

    作用域: 全局作用域 函数作用域 块级作用域(ES6新增) 常见的闭包有:作为函数返回值的闭包与作为函数参数的闭包...

  • 执行环境 & 作用域 & 闭包

    执行环境 & 作用域 & 闭包 执行环境 , 作用域 , 闭包 , 闭包应用 执行环境 执行环境定义了 当前环境的...

网友评论

      本文标题:作用域和闭包

      本文链接:https://www.haomeiwen.com/subject/gdvczftx.html