js执行思维导图

news2024/12/23 10:15:55

备注:

js执行:   执行分为两部分:预执行和执行
                预执行:创建好执行上下文
                执行:执行栈中执行
js引擎:   读取并执行js
                各个浏览器的引擎如下
                chrome,v8
                firefox,spidermonkey
                ie,chakra
                safari,nitro/javascriptcore
                opera,carakan

js单线程:js引擎执行js时只分了一个线程给它执行

                说到线程,我们先说进程,比如浏览器就是一个进程,打开浏览器网页时,发送请求,                   接手请求,渲染页面,执行js等等就是一个个线程

                那为什么js是单线程呢,为什么不是多线程;比如一个线程增加dom,另外一个删除dom
                而单线程会造成堵塞

执行栈:先进后出,栈顶的执行上下文获得执行权,并按顺序执行当前上下文中的代码,执行完                  后弹栈销毁上下文,执行权交给下一个栈顶执行上下文

执行上下文:执行上下文的生命周期:变量对象VO,作用域链,this值

执行环境:执行环境中包含三部分:变量对象/活动对象,作用域链,this的值

全局执行环境:this指向window

函数执行环境:如果嵌套函数作为方法调用,其this指向调用它的对象
                         如果嵌套函数作为函数调用,其this值指向window(非严格模式),或undefined(严格模式)

活动对象:初始化arguments

初始化函数fn:函数fn有个私有属性[[scope]],在全局作用域中定义的函数,会被初始化为当前的全局作用域,即fn.[[scope]] = "globalScope"

调用:创建函数fn执行上下文,同时创建作用域链fn.scopeChain = [fn.[[scope]]],此时作用域链有全局作用域

函数fn的活动对象AO被初始化后,把它作为变量对象推入作用域前端,此时fn.scopeChain=[fn.AO,fn.[[scope]]];此时作用域联众就有了当前活动对象和全局作用域,这就说明了为什么函数中能够访问到函数外部的变量

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/509174.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

总结846

学习目标: 月目标:5月(张宇强化前10讲,背诵15篇短文,熟词僻义300词基础词) 周目标:张宇强化前3讲并完成相应的习题并记录,英语背3篇文章并回诵 每日必复习(5分钟&#…

软考A计划-重点考点-专题八(知识产权和标准化知识)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

环保认证油烟监测装置餐饮业油烟污染如何治理?

摘要:城市餐饮业油烟污染成了困扰城区环境保护部门和人民群众日常生活的主要问题。油烟污染已经成为我国一个重大的污染源,是形成PM2.5的重要污染源之一,为了解决餐饮业油烟管理方面存在的问题,设计了餐饮业油烟在线监控系统&…

什么CRM客户管理系统最好?

产业互联网背景下,企业数字化转型日渐深化。毋庸置疑,客户是企业的命脉,企业发展的关键便是以客户为中心,为客户创造价值,并不断实现企业的可持续性增长,而这也是每个企业永不落幕的主题。 一套优秀的CRM客…

设计模式之【装饰者模式】,实现“穿衣打扮”自由原来这么简单

文章目录 一、什么是装饰者模式1、装饰者模式原理2、装饰者模式四大角色3、代理、桥接、装饰器、适配器 4 种设计模式的区别4、装饰者模式的应用场景5、装饰者模式和代理模式的对比6、装饰者模式优缺点7、抽象装饰器(Decorator)是必需的吗 二、实例1-煎饼…

上门推拿app开发软件|上门推拿o2o源码|上门推拿小程序

随着社会的发展,人们越来越注重身体健康,推拿按摩已经成为了不少人减轻身体疲劳、缓解压力的重要方式。但是,传统的推拿按摩前往店铺消费时间成本高、实现复杂,为此同城预约上门推拿小程序成为了时代的产物。   1. 市场需求大&a…

【机器学习】线性回归模型详解

PS:本文有一定阅读门槛,如果有不明白的地方欢迎评论询问! 1 模型概述 接下来我们将要学习我们的第一个模型——线性回归。比如说我需要根据数据预测某个面积的房子可以卖多少钱 接下来我们会用到以下符号: m:训练样本数量x:输…

软考A计划-重点考点-专题七(软件工程)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

当今自然语言处理领域中的成功之路:Transformer模型

当今自然语言处理领域中最重要和最成功的模型之一是Transformer模型。它是一种基于自注意力机制的神经网络模型,最初由Google公司的研究人员提出,并被广泛应用于机器翻译、文本生成、情感分析等任务中。 Transformer模型之所以被广泛使用,是因…

AI 将完全取代前端开发吗?

注:今晨,我浏览 Medium,看到了篇颇为标题党的文章,于是我就将它抛给了 ChatGPT。本篇文章全部由 ChatGPT 所写。同时,我也请 ChatGPT 分享了它对此的观点。 最近,我的同事向我讲述了他与他老板的一次谈话。…

Golang每日一练(leetDay0061) 表列序号、阶乘后的零

目录 171. Excel 表列序号 Excel Sheet Column Number 🌟 172. 阶乘后的零 Factorial Trailing Zeroes 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练…

ImageBind 多模态文本、图像、音频 Embedding同一个共享空间

参考: https://github.com/facebookresearch/ImageBind ImageBind learns a joint embedding across six different modalities - images, text, audio, depth, thermal, and IMU data ImageBind 多个模态共享同一个空间Embedding,这样可以通过一个模态…

【虾皮shopee来赞达lazada】各区域商品详情API接口返回值说明

虾皮shopee电商数据(来赞达lazada同理) 虾皮(shopee)是一个亚洲区域的电商平台,主要在东南亚地区提供电商服务。虾皮提供了丰富的电商数据,包括商品数据、订单数据、会员数据、评价数据等。以下是具体的介绍: 商品数据…

SpringBoot ( 二 ) 配置Controller

2.Controller处理请求 由于 在建立 SpringBoot项目时选择的 Web > Spring Web , Maven会导入 SpringMVC 框架 依赖, 做为 Web处理框架 在 SpringMVC框架中 , 通过 Controller类中的方法 来处理请求, 产生响应 在方法中 要解决以下问题 标识方法转页接收请求时传递信息封装响…

生物识别技术的安全挑战

背景 如今,生物识别技术已成为最流行的趋势之一,该趋势旨在通过更具弹性的身份验证机制来提高安全性并阻止网络攻击。目前,全球不仅面临着越来越多的跨设备和系统的网络威胁,冠状病毒大流行还改变了消费者和企业对数字和物理风险…

ChatGPT会如何影响我们的工作生活和人力资源需求

ChatGPT,这几天体验了一下,确实是非常震撼。 一方面是因为它的回答确实相当好,自带一点框架逻辑,有上下文理解能力,可以追问,有情商。虽然很多时候都是一些正确的废话 它还有媲美一个普通大学生的信息整合…

PCIe热插拔机制(详细)总结-PCIe专题知识(五)

目录 前言一、概述二、原理详解2.1 热插拔原理总结2.2 热插拔软硬件要求 三、其他相关知识链接1、PCIe物理层总结-PCIE专题知识(一)2、PCIe数据链路层图文总结-PCIe专题知识(二)3、PCIe物理层链路训练和初始化总结-PCIe专题知识&a…

macOS Ventura 13.4 RC(22F62)发布

系统介绍 5 月 10 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.4 RC 更新(内部版本号:22F62),本次更新距离上次发布隔了 49 天。 macOS Ventura 带来了台前调度、连续互通相机、FaceTime 通话接力等功能。其中&a…

工程化:vite4和vue3里面的命令式loading的封装及使用

用习惯了vue的组件使用方式,转到vue3里面发现没有了vue的原型,不能全局挂载方法了,我们要使用命令式调用组件该怎么做, 效果展示 代码演练 1.组件结构 2.基础的组件模板loading.vue <template><sectionclass="full-loading":class

Java 诊断神器:Arthas

Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方法执行耗时&#xff0c;类加载信…