当前位置: 首页 > wzjs >正文

苏中建设官方网站seo推广培训课程

苏中建设官方网站,seo推广培训课程,小程序广州开发公司,专业的公司网站制作服务深入理解 JavaScript 执行上下文 什么是JavaScript执行上下文JavaScript执行上下文的分类全局执行上下文函数执行上下文eval执行上下文 JavaScript管理执行上下文的方式:执行上下文栈 什么是JavaScript执行上下文 概念:JavaScript中,在执行任…

深入理解 JavaScript 执行上下文

  • 什么是JavaScript执行上下文
  • JavaScript执行上下文的分类
            • 全局执行上下文
            • 函数执行上下文
            • eval执行上下文
  • JavaScript管理执行上下文的方式:执行上下文栈

什么是JavaScript执行上下文

概念:JavaScript中,在执行任何代码之前,JavaScript引擎会先创建一个执行上下文(global execution context)。它包含有关当前代码正在执行的环境信息,是当前代码执行的基础。

JavaScript执行上下文的分类

执行上下文总共有三种类型:

全局执行上下文
  • 概念:当JavaScript代码首次执行时,它会创建一个全局执行上下文(Global Execution Context)。这个全局执行上下文包含了全局对象(在浏览器中是window对象,在Node.js中是global对象),以及其他全局变量和函数。
  • 变量定义: 在全局执行上下文中,你可以定义变量和函数。这些变量和函数将成为全局对象(如window或global)的属性。
  • this指向: 在全局执行上下文中,this关键字指向全局对象。
函数执行上下文
  • 概念:每当一个函数被调用时,JavaScript引擎会创建一个新的函数执行上下文(Function Execution Context)。每个函数调用都会创建自己的执行上下文,这些执行上下文被存储在调用栈(Call Stack)中。
  • 函数执行上下文的生命周期包括三个阶段:创建阶段→执行阶段→回收阶段
    • 第一步:创建阶段
      • 创建变量对象(Variable Object, VO):在函数执行上下文中,VO包含了函数的参数、内部变量和函数声明的属性。首先初始化函数的参数 arguments,提升函数声明和变量声明。在ES6及以后,引入了词法环境(Lexical Environment)来替代VO。
      • 创建作用域链(Scope Chain):作用域链是一个对象列表,它决定了变量和函数的查找顺序。作用域链首先包含自己的变量对象,然后是上层(父级)的执行上下文中的变量对象。
      • 确定this的值:根据调用方式(如普通调用、方法调用、构造函数调用等)来确定this的指向。
      • 解析代码:在一段 JS 脚本执行之前,要先解析代码(所以说 JS 是解释执行的脚本语言),解析的时候会先创建一个全局执行上下文环境,先把代码中即将执行的变量、函数声明都拿出来。变量先暂时赋值为 undefined,函数则先声明好可使用。这一步做完了,然后再开始正式执行程序。
    • 第二步:执行阶段
      执行变量赋值、代码执行
    • 第三步:回收阶段
      执行上下文出栈等待垃圾回收机制回收执行上下文
eval执行上下文
  • 概念:eval执行上下文是在eval函数中创建的执行上下文

JavaScript管理执行上下文的方式:执行上下文栈

在JavaScript代码中可能有很多函数,每次函数调用都会创建一个新的执行上下文,如何同时管理多个函数执行上下文呢?

在JavaScript引擎中,通过创建执行上下文栈来管理执行上下文。可以把它理解为一个存储函数调用的栈结构,遵循栈的先进后出的原则。
简单理解这个过程:

  1. 全局执行上下文入栈:JavaScript执行在单线程上,所有的代码都是排队执行的。一开始浏览器执行全局代码时,首先创建全局执行上下文,并压入执行栈顶部。
  2. 函数执行上下文入栈:每当进入一个函数的执行就会创建函数的执行上下文,并且把它压缩执行栈顶部。
  3. js引擎访问栈中的执行上下文:浏览器的js执行引擎总是访问栈顶的执行上下文。
  4. 函数执行上下文之后出栈:当前函数执行完成后,当前函数的执行上下文出栈,并等待垃圾回收机制回收

注意:全局上下文只有一个,并全局执行环境被销毁时,比如在浏览器关闭时出栈

http://www.dtcms.com/wzjs/27337.html

相关文章:

  • 网站背景素材南宁网站建设服务公司
  • html5做网站无锡百姓网推广
  • 小精灵网站在线做语文湖北网站建设制作
  • 网站备案麻烦吗交换链接的作用
  • 沈阳包装设计公司基础建站如何提升和优化
  • 哪里教做网站的自动引流推广软件
  • 怎么做 niche网站北京培训学校
  • 毕业设计怎么做网站全网营销老婆第一人
  • 云南建设网站网络营销策略的制定
  • 成都定制app开发公司汕头seo
  • 政府机关网站建设方案什么是seo如何进行seo
  • 亚马逊购物网seo快速入门教程
  • 关于公司网站建设百度关键词收费标准
  • 泉州握旗公司网站建设seo必备软件
  • .我爱你 网站一键优化表格
  • 怎么给一个网站做推广北京网站seo技术厂家
  • 怎样登录韵网网站小程序开发费用明细
  • jsp动态网站开发实用教程如何制作一个宣传网页
  • 简单asp网站源码旅游产品推广有哪些渠道
  • 东莞中堂网站建设seo01
  • 做设计最好的参考网站深圳防疫措施优化
  • 关键词和网站的关系网址seo查询
  • 车机油哪个网站做的好做百度推广的公司电话号码
  • 郑州做网站建设网络营销推广及优化方案
  • 龙岩网站建设龙岩网站制作关键词排名霸屏代做
  • 筹划电子商务网站建设对seo的认识和理解
  • 株洲建设网站制作武汉标兵seo
  • php网站上传写手代写平台
  • 即墨做网站做外贸用什么软件找客户
  • 买汽车最好的网站建设免费无代码开发平台