ES6的一些新语法——作用域,作用域链,垃圾回收机制,闭包,变量提升

1.作用域

定义:规定了变量能被访问的范围

分类:

1.局部作用域

分类

1.函数作用域

在函数内部的

2.块作用域

用{}包裹的代码称为代码块,{}里面声明的变量在外部有可能无法被访问,lei ,const声明的无法被访问,var没有块作用域

2.全局作用域

写在script标签里面或.JS文件里的

2.作用域链

本质是一种查找机制

总结 

3.垃圾回收机制 

1.含义

2.内存的生命周期 

3.堆和栈 

4.垃圾回收算法 

 1.引用计数法

现在基本不再使用

缺点

2.标记清除法

根部出发,不能访问到的就回收

4.闭包 (closure)

1.含义

函数套函数,里面的函数引用了外面函数的变量

 

2.闭包的作用: 

示例 

闭包常用写法以及实现在函数外部使用函数内部变量

<script>
    // 常见的闭包形式 外部可以访问使用函数内部的变量
    function outer(){
      let a=10
      function fn(){
        console.log(a)
      }
      return fn//返回的是一个函数
    }
    const fun=outer()//用一个变量来接收函数
    fun()//调用函数 实现在函数外部使用函数内部的变量
  </script>

3.闭包的应用 

实现数据的私有

示例

// 使用闭包做一个统计函数调用次数的和函数
    function count() {
      let i = 0

      function fn() {
        i++
        console.log(i)

      }
      return fn
    }
    const fcount = count()

4.闭包可能引起的问题

内存泄漏 

因为外面的全局函数到关闭时才会销毁,所以闭包里面返回的函数会一直被调用,导致从根部一直能找到,所以会内存泄漏

5.变量提升 

只在var中存在

流程

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值