美文网首页
变量作用域

变量作用域

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

变量

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

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

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

执行环境及作用域

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

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

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

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

延长作用链域

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

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

垃圾收集

  • 标记清除
  • 引用计数

相关文章

  • 第四章 作用域和内存问题

    变量的作用域? 变量作用:起作用域:区域,范围变量起作用的地方 变量的生命周期,变量生于这个作用域,死于这个作用域...

  • JS作用域链

    作用域 变量的作用域 变量的作用域有两种:全局变量和局部变量。 全局作用域: 最外层函数定义的变量拥有全局作用域,...

  • 变量作用域

    变量作用域:静态作用域、动态作用域JS变量作用域:JS使用静态作用域JS没有块级作用域(全局作用域、函数作用域等)...

  • 【前端】-023-JavaScript-进阶篇-变量作用域

    变量作用域 JavaScript中变量的作用域 采用静态作用域(变量定义的位置决定了变量的引用) 没有块级作用域,...

  • php基础知识回顾-1

    1.变量作用域 php变量有四种作用域:局部作用域、全局作用域,静态作用域、参数作用域 在局部调用全局变量需要使用...

  • js中作用域与作用域链

    js中作用域与作用域链 作用域 *作用域基本概念 作用域一般指变量的作用范围,变量分为全局变量和局部变量,对应的作...

  • 作用域与变量提升

    作用域与变量提升 作用域 JS中变量的作用域有全局作用域和局部作用域两种,作用域简单来讲就是变量与函数的可访问范围...

  • 关于作用域链

    作用域 先来谈谈变量的作用域变量的作用域无非就是两种:全局变量和局部变量。全局作用域:最外层函数定义的变量拥有全局...

  • JavaScript关于作用域、作用域链和闭包的理解

    作用域 先来谈谈变量的作用域变量的作用域无非就是两种:全局变量和局部变量。全局作用域:最外层函数定义的变量拥有全局...

  • JavaScript 中的变量作用域

    JavaScript 中的变量作用域 JavaScript中的变量作用域被定义为函数作用域。 变量的值在定义该变量...

网友评论

      本文标题:变量作用域

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