美文网首页
变量作用域

变量作用域

作者: 787518d9b65a | 来源:发表于2018-06-03 06:45 被阅读0次

    变量

    基本类型值指简单的数据段,引用类型值值得是那些可能由多个值构成的对象。引用类型值是保持在内存中的变量。JS不允许直接访问内存中的位置,复制保存着对象的某个对象时,操作的是对象的引用。为对象添加属性时,操作的是实际的对象。

    只能给引用类型值动态地添加属性。

    instanceof操作符可以检测引用类型。如果是给定引用类型的实力,则会返回true。

    执行环境及作用域

    执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为。每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中。

    全局执行环境被认为是window对象。所有全局变量和函数都是作为window对象的属性和方法创建的。全局执行环境直到环境被销毁后,所有变量和函数定义也随之创建。

    每个函数都有一个执行环境。当代码在一个环境中执行是,会创建变量对象的一个作用域链,保证对执行环境有权访问的所有变量和函数的有序访问。作用域的前端,始终都是当前执行的代码所在环境的变量对象。这个环境是函数,则其活动对象作为变量对象。活动对象最开始只包含arguments对象。而作用链中的下一个对象则向外延伸。

    内部环境可以通过作用链访问所有的外部环境,外部环境不能访问内部环境中的任何变量和函数。

    延长作用链域

    • try-catch语句的catch块
    • with语句。

    var语句和with语句会接近最接近的环境中。查询时,先从函数内部查找,再往外延伸,如果在局部定义中找到,则搜索会停止。

    垃圾收集

    • 标记清除
    • 引用计数

    相关文章

      网友评论

          本文标题:变量作用域

          本文链接:https://www.haomeiwen.com/subject/uwwdsftx.html