作用域(scope):一个变量的可用范围

两种:全局作用域,任何地方都可以访问,反复使用

   函数作用域,仅在函数内部可访问,不能重复使用

函数的生命周期
  1、开始执行前:
    创建执行环境栈(ECS数组):临时保存正在执行的函数的环境
    向执行环境栈中加入第一个默认函数main()
    创建全局作用域对象window
2、定义函数时:
    创建函数对象,封装定义
    声明函数名变量,引用函数对象
    函数对象的scope属性引用回,创建函数时的作用域
3、调用函数时:
    ESC中加入一个新的元素(执行环境),记录新函数调用
    创建一个活动对象,保存本次函数调用用到的局部变量
    ESC新执行环境元素,引用活动对象
    活动对象中的parent属性引用函数的scope指向的父级作用域对象
    在执行过程中:优先使用活动对象中的局部变量
    局部中没有,才延parent向父级作用域找
4、调用函数后:
    执行环境栈中本次函数的执行环境出栈
    导致活动对象被释放 导致局部变量一同释放

作用域链:由多级作用域连续引用形成的链式结果
    掌管一切变量的使用顺序: 先在局部找,没有,就延作用域向父级作用域找

转载于:https://www.cnblogs.com/yeming980912/p/10928207.html

JS作用域和作用域链相关推荐

  1. js作用域及作用域链概念理解及使用

    之前写过一篇JavaScript 闭包究竟是什么的文章理解闭包,觉得写得很清晰,可以简单理解闭包产生原因,但看评论都在说了解了作用域链和活动对象才能真正理解闭包,起初不以为然,后来在跟公司同事交流的时 ...

  2. js 闭包作用域和作用域链_Java:伪造工厂的闭包以创建域对象

    js 闭包作用域和作用域链 最近,我们想创建一个域对象,该对象需要具有外部依赖关系才能进行计算,并且希望能够在测试中解决该依赖关系. 最初,我们只是在领域类中引入依赖关系,但这使得无法在测试中控制其值 ...

  3. Js中的作用域和作用域链

    Js中的作用域和作用域链 前言 阅读本文,请先阅读:Js中的函数相关:创建函数的三种方式.函数的形参和实参.返回值.return.break.continue的区别.重载和arguments.匿名函数 ...

  4. JS进阶学习(作用域、函数进阶、解构赋值、原型链)

    文章目录 1.面相对象编程介绍 2.ES6中的类和对象 3.类的继承 ES6中的类和对象 三个注意点 作用域 局部作用域 全局作用域 作用域链 JS垃圾回收机制(GC) JS垃圾回收机制-算法说明 闭 ...

  5. 详解JS 作用域与作用域链

    作用域和作用域链方面的知识是JS的重点,去面试十个有八个都会问你这块的知识,所以说这块是特别特别的重要,下面我们好好理解一下作用域和作用域链到底是个什么: 先上一段代码: var a = 'jack' ...

  6. JS 作用域和作用域链

    作用域 JavaScript 中的作用域是我们可以有效访问变量或函数的区域.作用域规定了如何查找变量,也就是确定当前执行代码对变量的访问权限. JavaScript 有两种类型的作用域:全局作用域.局 ...

  7. 深入理解JS作用域和作用域链

    作用域(scope) 1.什么是作用域 概念:作用域是在程序运行时代码中的某些特定部分中变量.函数和对象的可访问性. 从使用方面来解释,作用域就是变量的使用范围,也就是在代码的哪些部分可以访问这个变量 ...

  8. JS作用域与作用域链附测试题

    分类 全局作用域 函数作用域 块级作用域(ES6之后) 作用 隔离变量,不同作用域下同名变量不会有冲突 作用域与执行上下文 区别 – 除全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时 ...

  9. 如何理解JS中作用域和作用域链

    1.背景介绍 任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期.在JavaScript中,变量的作用域有全局作用域和局部作用域两 ...

  10. js作用域及作用域链

    一.作用域定义 作用域就是代码的执行环境,全局执行环境就是全局作用域,函数的执行环境就是私有作用域,它们都是栈内存.执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为.每个执行环境都有一 ...

最新文章

  1. Android 性能优化
  2. java删除目录以及目录下文件,java删除文件、删除目录及目录下的文件
  3. 二叉苹果树(树型DP+背包)
  4. 20201014 《计算感知》第2节课 笔记
  5. Java中的观察者设计模式
  6. python网络爬虫系列(一)——urllib库(urlopen、urlretrieve、urlencode、parse-qs、urlparse和urlsplit、request.Request类)
  7. 我们通过一个服务器程序,以研究backlog参数对listen系统调用的影响,运行截图如下...
  8. ImageNet dataset下载
  9. 华硕怎么安装linux系统教程,华硕笔记本系统如何安装win10和linux 双系统
  10. (java毕业设计)基于java学生宿舍管理系统
  11. java程序在哪里运行_JAVA代码是怎么运行的
  12. 根据程序流程图化程序流图_程序流程图有什么用?简单实用的流程图模板大全...
  13. □ 影片名:《陈好-女人要爱自己》(7012) 在线播放
  14. 数学公式编辑器:MathType 7 for mac
  15. 致敬第一个1024(第一次Java代码编程)
  16. 双摄像头深度剖析 (1):双Camera都能做什么?
  17. android MVP——mvp架构的应用和优化
  18. 中国移动与佳乐科仪签署物联网合作协议 共迈“工业4.0”
  19. 单片机c语言程序编写步骤,用c语言编写单片机流水灯程序详解
  20. Element ui+vue前端框架组件主题美化后台管理系统模板html

热门文章

  1. 关于IsolatedStorageFile存取文件的问题
  2. 数据结构C#版笔记--树与二叉树
  3. matlab去除周期噪声,matlab在空域与频域中去除周期噪声、椒盐噪声的简单应用
  4. 学python语言用什么软件-对于自学python的初学者来说,应该使用什么编辑工具?...
  5. python使用缩进作为语法边界一般建议怎样缩进-python基础自测挑战题,适合刚起步不久的小猿!...
  6. python画图代码turtle-Python使用Turtle图形函数画图 颜色填充!
  7. 零基础python必背代码-零基础小白Python入门必看:通俗易懂,搞定深浅拷贝
  8. python爬虫案例-python爬虫详细解析附案例
  9. python教学网站-python教学网站
  10. esp32 python-ESP32教程:MicroPython支持