JS 中做用域

##做用域 咱们能够理解为代码起做用的区域es6

JS中的做用域 有两种,分别是全局做用域 和 私有做用域
做用域 也能够说就是一块栈内存浏览器

栈内存 存储值类型 提供代码的运行环境 堆内存 存储引用数据类型函数

全局做用域:   页面一打开就会造成一个全局做用域  一个页面只有一个全局做用域
    私有做用域:   函数执行的时候会 造成一个私有的做用域  

    全局变量     在全局声明的变量 叫作全局变量
    私有变量     在私有做用域声明的变量  叫作私有变量   形参也是私有变量 

    上级做用域   外层做用域:查找规律,上级做用域是谁,就看这个函数是在哪一个做用域声明定义的
                  对于私有做用域中的某些变量      若没有在私有做用域中声明过,那么函数执行时就会去上级做用域查找该变量    上级做用域若没有该变量  则 接着向上级查找,
                  直到查找到全局做用域 若仍没有 则报错:
    做用域链:     变量的查找机制    一直向上级做用域查找


    函数执行的过程  也能够这样理解
       先开辟一个私有做用域(栈内存),形参赋值,而后变量提高   而后代码从上向下执行,
       私有变量有:   形参  私有做用域中声明过的变量   其余的变量都是上级做用域的,
       暂时性时区   在let 和const以前 不能使用他们声明的任何变量

    es6 针对 let和 const 声明的变量  多了一个块级做用域({}),   理解成一个私有做用域便可 
    
    
堆内存的销毁 
用谷歌浏览器为例子; 会按期的查看整个堆内存   把没有被引用的堆内存销毁掉 (回收)
    
    栈内存的销毁 
          全局做用域对应的栈内存:关闭页面的时候才会被销毁
          私有做用域对应的栈内存:通常状况下 函数执行完成  对应的栈内存就会被销毁
              当返回值是个引用数据类型时 不会被销毁 
复制代码
相关文章
相关标签/搜索