JS中的作用域和闭包的小知识点

1、作用域:当程序运行的时候,就创建了一个用于保存变量和变量值的存储系统。这些内存中的作用域结构就被称为执行环境。

执行环境(或内存作用域)与词法作用域有所不同,它是在代码运行时才被创建,而不是代码被输入时,规则可以控制在程序执行过程中的不同点可以访问哪些变量。

2、程序运行时,将会创建内部数据存储,以记录可供不用函数对象访问的所有变量。

函数的每一次运行都完全独立于此前的任何一次运行。每次函数运行时就会创建一个新的运行环境。因此每个词法作用域在运行的过程中可能会创建多个内存作用域,也可能一个都没有,这完全取决于此函数运行了多少次。

3、词法作用域只是代码文件某处的代码字符,并不是一个可以存储在变量中的值也无法作为数组的某个元素。

4、闭包:简单来说,每个函数都可以访问其外围作用域的所有变量,闭包是指一些函数通过某种方式可以随时被访问,即使它的外部代码已经执行完毕。

5、一个函数的环境永远被创建为定义该函数的环境的子环境。

6、当你看到一个函数的输入参数是静态的,就是每次调用函数时,该参数不会使用一个新的值,这个时候就可以重构代码了,将这个值存储在一个外部作用域的变量中,根据闭包原理,内层的函数随时可以访问其外层作用域的变量,即使外层函数已经返回。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值