前端基础学习笔记 作用域 JS执行顺序 闭包

本文详细介绍了JavaScript中的作用域,包括全局作用域、函数作用域以及ES6的块作用域,强调了作用域链的工作原理。接着讨论了JS的执行流程,涉及变量提升和编译阶段。最后,探讨了闭包的概念,其作用、创建条件以及可能带来的内存问题。
摘要由CSDN通过智能技术生成

作用域

  • es5 作用域

作用域: 变量生效的限定环境

  1. 全局/顶层作用域 存在于script标签以及js文件

    全局作用域内声明的变量称之为全局变量,全局变量,可以在整个作用域内使用.

    所有的全局的环境都是互通的

  2. 函数作用域

    1.函数作用域内声明的变量,只能在当前函数作用域内使用,在别的作用域内访问不到.

    2.每个函数,都会生成一个独立的函数作用域

    3.函数作用域内的函数作用域,属于包含关系,不存在交集的函数作用域,则互不干扰

    4.函数使用全局变量,会改变全局变量的值

    ​ !!!作用域链 多个作用域相互嵌套

! 当我们处于某一个作用域里面使用变量时,先从自身作用域里面找该变量,如果找不到,就往父级作用域里面查找,直到script作用域,,还是没有就报错

! 当我们处于某一个作用域里面,修改某个变量的值时,先修改自己的,如果没有,就修改父级,直到script作用域都找不到,默认设置全局变量

! 无论什么环境下,没有声明就直接赋值的变量都会泄露成为window的属性,类似全局变量,window下面的属性 比全局还要高 var 和 function声明的全局变量,也会挂载到window的属性 let const不会

挂载上去的属性 可以delete删除 声明的全局变量不行

a = 1; delete a;
  • es6新增 块作用域

if for内的 var 声明 如果 if 在 全局作用域内 那么在if内用var 声明的变量则为全局变量.

<
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值