zoukankan      html  css  js  c++  java
  • 作用域链总结

     

    1、只有函数有作用域,es5中函数没有块级作用域。Es6中的let增加了块级作用域。

    2、变量提升的问题。

    3、函数执行分为两个阶段。@1进入执行上下文阶段,形成活动对象AO,@2执行代码

    4、全局上下文的变量对象初始化是全局对象

          

          函数上下文的变量对象初始化只包括 Arguments 对象

          

          在进入执行上下文时会给变量对象添加形参、函数声明、变量声明等初始的属性值

          

          在代码执行阶段,会再次修改变量对象的属性值

    5、作用域链如果在A函数内声明了B函数,即A函数在执行的时候,会创建其A函数的作用域, 那么函数B在创建的时候,会引用A的作用域。

    6、像这种函数作用域的嵌套就组成了所谓的函数作用域链。当在自身作用域内找不到该变量的时候,会沿着作用域链逐步向上查找,若在全局作用域内部仍找不到该变量,则会抛出异常。

    7、闭包即有权访问其他函数作用域内的变量即为闭包。要这样,必须在一个函数内部创建一个函数才能实现。

    8、闭包的问题:变量污染和内存泄漏。

    @1即多个函数同时修改一个变量

    @2即无法释放内存空间。

  • 相关阅读:
    git 码云
    keras训练cnn模型时loss为nan
    将矩阵补齐0
    将dataframe分割为训练集和测试集两部分
    另存了一次网页之后其它word打开格式都变了
    python 判断字符串是否为(或包含)IP地址
    为多维数组添加一列以及reshape用法注意
    memory error python报错
    列表转换为三维矩阵
    LaTeX参考文献出现问号
  • 原文地址:https://www.cnblogs.com/qdcnbj/p/11186879.html
Copyright © 2011-2022 走看看