js中作用域(scope)和作用域链 全局作用域 函数作用域 函数生命周期 局部变量

作用域(scope)和作用域链

1.作用域

作用域其实就是一个变量的可用范围。js中有两级作用域:全局作用域 window,函数作用域。

2.全局作用域

  1. 全局作用域 window保存着全局变量。(其实作用域本质是一个对象,保存了当前所有变量)。
  2. 保存在全局作用域中的变量成为全局变量。
    • 优点:可重复使用
    • 确定:及易被篡改

3.函数作用域

  1. 保存着一个函数中所有的局部变量的对象

  2. 保存在函数作用域内的变量叫做局部变量

    • 优点:仅在函数内可用,函数外部无法访问
    • 缺点:不可重用
  3. 函数的生命周期

    函数的生命周期分为三个阶段:创建阶段,执行阶段,销毁阶段

    • 创建阶段:

      只有函数对象,没有调用函数前,暂时没有函数作用域对象

    • 执行阶段:

      调用函数时,会为调用的函数临时创建 作用域对象,保存函数中的 局部变量(局部变量包括形参和在函数内var出的变量)函数内部要用到变量时,都是先自己局部中找,找不到才去上一级作用域中找。

    • 销毁阶段:

      函数调用后,会自动释放掉本次临时创建的函数作用域对象,其中的所有局部变量都会被一起释放掉。所以,函数作用域中的局部变量是不可重用的

4. 作用域链

  1. 由多个作用域对象串联起来的链式结构就是作用域链
  2. 全局中的函数都有两级作用域一个是自己调用时临时创建的作用域对象,一个是全局的作用域对象window
  3. 当函数调用时,都是按照先函数作用域再全局作用域来使用变量的。
  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉沦与遐想。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值