首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS底层运行机制

想要了解JS底层运行机制,首先要明白这几个概念: 为什么js能在浏览器中执行 众所周知,计算机是有内存的,计算机会在内存中开辟一块空间去供js执行,这个空间我们称之为执行栈 全局对象和全局变量对象是一样的吗...全局变量对象,在script标签内的代码执行时,会形成EC(G)的栈,EC(G)进栈(执行环境栈,EC Stack)执行,形成全局执行上下文(VO(G)),供给下级作用域 js中上下文有哪些 全局上下文...执行上下文 为了进行区域划分,会形成不同的执行上下文,全局环境会形成全局执行上下文,函数执行会形成函数执行上下文,通过作用域链scope chain形成链式关系 举个例子,var a = 12在底层是如何执行的...底层运行机制(成哥版,腾讯课堂有免费公开课) 函数都是对象,对象身上就会有属性,有的属性可以访问,有的属性不能直接访问 函数执行多次会生成多个上下文,每个执行上下文都是独一无二的,函数执行完,执行上下文被销毁...(只是指向被销毁,具体的执行上下文会定期被垃圾机制回收) 函数定义的时候,会生成[[scope]]属性,用来存放当前函数的作用域,[[scope]]属性里面存在scope chain作用域链 scope

1.9K10

JS ----- 底层原理

JS不是这样做的,JS是不需要编译成中间码,而是可以直接在浏览器中运行,JS运行过程可分为两个阶段,编译和执行。...(可参考你不知道的JS这本书),当JS控制器转到一段可执行的代码时(这段可执行代码就是编译阶段生成的),会创建与之对应的执行上下文(Excution Context简称EC)。...执行上下文可以理解为执行环境(执行上下文只能由JS解释器创建,也只能由JS解释器使用,用户是不可以操作该"对象"的)。...JS底层运行原理 每调用一个函数就会生成一个执行环境(俗称执行上下文),执行上下文环境数量没有限制 每调用一个函数就会生成一个执行环境(俗称执行上下文),执行上下文环境数量没有限制 单线程 同步执行...eval():把字符串单做JS代码执行,不推荐使用

2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    浏览器底层渲染机制

    # 浏览器底层渲染机制 浏览器向服务器发起请求,获取到对应的html资源文件后,开辟一块栈内存,通过GUI渲染线程来解析渲染页面 GUI渲染线程是“同步”的 - 对于css的处理 遇到内联样式...渲染线程继续解析文档,等到文档全部解析完毕,然后解析加载完毕的资源文件 遇到@import导入式样式,同步的加载资源文件,等待资源文件获取并解析完,继续进行文档解析 - 对于script的处理 默认是同步加载js...资源文件,故js资源文件会阻塞GUI渲染线程的解析,等到js资源文件解析完毕才继续解析文档 当遇到标签,会异步加载js文件,同时解析文档,等到资源文件加载完成,暂停解析文档,...立即解析js代码,js代码解析完,继续解析文档 当遇到标签,会异步加载js文件,同时解析文档,等到文档解析完毕,js代码才会解析 - 对于img,auth的处理 默认也是异步加载资源文件

    26720

    MySQL优化底层逻辑

    前言去年刚开始写博客的时候写了一篇《MySQL性能调优参考》,文章中提到优化的几个技巧,比如数据类型的使用、范式和反范式的合理使用、索引的使用及其使用的注意事项等等。...其中我们接触最多的就是索引,你可能知道索引的底层结构是B+Tree、使用索引要遵守最左匹配原则,那你知道为什么要用B+Tree、为什么使用索引有那么多注意事项吗?...索引的底层结构首先,MySQL索引的存储不仅仅只有B+Tree的结构,还有Hash和全文,这个在创建索引时可以指定。...怎么理解索引失效不论是WHERE条件也好,查询字段也罢,是否使用索引或者使用哪个索引都是「优化器」来决定的,以下几个是优化器工作时索引失效的例子及说明:当索引列的唯一值与总行数的区分度很小,比如索引列的值就是男和女...当优化器看到WHERE条件中有OR关键字时,会看前后两个字段是否都是索引列,因为OR的含义就是两个只要满足一个即可,所以只要有一个不是索引列就会进行全表扫描。

    41231

    js异步机制

    一个浏览器通常有几个常驻线程: 渲染引擎线程:顾名思义,该线程负责页面的渲染 JS引擎线程:负责JS的解析和执行 定时触发器线程:处理定时事件,比如setTimeout、setInterval 事件触发线程...渲染线程在执行任务的时候,JS引擎线程会被挂起。因为JS可以操作DOM,若在渲染中JS处理了DOM,浏览器可能就不知所措了。 2....JS引擎 通常讲到浏览器的时候,我们会说到两个引擎:渲染引擎和JS引擎。...JS引擎可以说是JS虚拟机,负责JS代码的解析和执行。...之所以说JavaScript是单线程,就是因为浏览器在运行时只开启了一个JS引擎线程来解析和执行JS。那为什么只有一个引擎呢?如果同时有两个线程去操作DOM,浏览器是不是又要不知所措了。

    2.5K40

    Kernel同步机制底层实现

    以上的那些API函数,在底层调用的其实都是如下__lse_atomic_add_return##name宏的封装,这段代码中最核心的也就是ldadd指令了,这是armv8.1增加的LSE(Large System...Qo" (v->counter)  \  : "r" (&v->counter), "Ir" (i)     \  : "cc");       \ } 总结: 在很早期,使用arm的exclusive机制来实现的原子操作...,exclusive相关的指令也就是ldrex、strex了,但在armv8后,exclusive机制的指令发生了变化变成了ldxr、stxr。...我在举个例子,如下: T1 : 进程1调用spin_lock,此时next=0, owner=0获得该锁,在arch_spin_lock()底层实现中,会next++ T2 : 进程2调用spin_lock...lock);  arch_spin_lock(&lock->raw_lock);  mmiowb_spin_lock(); } 对于arch_spin_lock()、arch_spin_unlock()的底层实现

    84840

    Apache ZooKeeper - Watch 机制底层原理

    ---- Watch 机制 ZooKeeper 又一关键技术——Watch 监控机制 。...---- Watch 机制底层原理 ? 其结构很像设计模式中的”观察者模式“,一个对象或者数据节点可能会被多个客户端监控,当对应事件被触发时,会通知这些对象或客户端。...我们可以将 Watch 机制理解为是分布式环境下的观察者模式。 ? 所以接下来就以观察者模式的角度点来看看 ZooKeeper 底层 Watch 是如何实现的。...ZooKeeper 底层是通过 FinalRequestProcessor 类中的 processRequest 函数实现的。...GetDataResponse(b, stat); .. } ---- 服务端 Watch 事件的触发过程 在客户端和服务端都对 watch 注册完成后,我们接下来看一下在 ZooKeeper 中触发一个 Watch 事件的底层实现过程

    1.8K10

    小程序底层技术机制解读:版本更新与底层运行原理

    然而,为了保持小程序的稳定性和功能的持续优化,了解小程序底层技术机制是很有必要的。本文将重点解读小程序的版本更新机制底层运行原理,以帮助读者更好地理解小程序的工作方式和优化策略。...小程序版本更新机制 小程序的版本更新机制是保证小程序持续优化和功能迭代的重要机制之一。它允许开发者在不影响用户体验的前提下,推送新的小程序版本。...; } }) 总结 通过本文的介绍,我们了解了小程序的底层技术机制,包括版本更新机制底层运行原理。...小程序的底层运行原理涉及到前端和后端两个部分,前端使用Web技术栈进行开发,后端则借助微信的云开发服务进行数据处理和存储。 了解小程序的底层技术机制有助于开发者更好地理解和优化自己的小程序项目。...通过深入了解小程序的版本更新机制底层运行原理,开发者可以更加灵活地进行功能迭代和性能优化,提升用户体验。 希望本文对读者对小程序底层技术机制的理解有所帮助,并能在实际开发中提供一定的指导和启示。

    29720

    JS 调用栈机制与 ES6 尾调用优化介绍

    调用栈的英文名叫做Call Stack,大家或多或少是有听过的,但是对于js调用栈的工作方式以及如何在工作中利用这一特性,大部分人可能没有进行过更深入的研究,这块内容可以说对我们前端来说就是所谓的基础知识...调用栈的运行机制 调用栈优化内存 调用栈debug大法 数据结构:栈 栈是一种遵从后进先出(LIFO)原则的有序集合,新元素都靠近栈顶,旧元素都接近栈底。...调用栈的运行机制 机制: 程序运行到一个函数,它就会将其添加到调用栈中,当从这个函数返回的时候,就会将这个函数从调用栈中删掉。...这种优化也是不可小觑的,积跬步以至千里,诸君共勉! 结语 本文主要讲了这几个方面的内容: 理解调用栈的运行机制,对代码背后的一些执行机制也可以更加了解,帮助我们在百尺竿头更进一步。...最后:之前写过一篇关于垃圾回收机制与内存泄露的文章,感兴趣的同学可以扩展一下。

    88420

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券