成都门户网站建设公司永德网站建设

张小明 2026/1/2 8:12:14
成都门户网站建设公司,永德网站建设,悦诗风吟网站建设策划书,装饰装修工程全局代码执行过程-函数 var name kaimofoo(123) function foo(num) {console.log(m)var m 10var n 20console.log(foo) }全局代码执行过程-函数嵌套 当我们查找一个变量时#xff0c;真实的查找路径是沿着作用域链来查找 var name kaimofoo(12…全局代码执行过程-函数varnamekaimofoo(123)functionfoo(num){console.log(m)varm10varn20console.log(foo)}全局代码执行过程-函数嵌套当我们查找一个变量时真实的查找路径是沿着作用域链来查找varnamekaimofoo(123)functionfoo(num){console.log(m)varm10varn20console.log(foo)functionbar(){console.log(bar)}bar()}函数调用函数执行过程varmsgkaimofunctionfoo(){console.log(msg)}functionbar(){varmsgkaimo313foo()}bar()变量环境和变量记录其实我们上面讲解的AO/GO/VO都是基于早期 ECMA 的版本(ECMAScript 5以前)规范Every execution context has associated with it a variable object, Variables and functions declared in the source text are added as properties of the variable object, For function code, parameters are added as properties of the variable object.每一个执行上下文会被关联到一个变量对象variable object VO在源代码中的变量和函数声明会被作为属性添加到 VO 中对于函数来说参数也会被添加到 VO 中。在最新的 ECMA 的版本规范中对于一些词汇进行了修改Every execution context has an associated VariableEnvironment, Variables and functions declared in ECMAScript code evaluated in an execution context are added as bindings in that VariableEnvironment’s Environment Record, For function code, parameters are also added as bindings to that Environment Record.每一个执行上下文会被关联到一个变量环境VariableEnvironmentVE中在执行代码中变量和函数的声明会作为环境记录Environment RecordER添加到变量环境中对于函数来说参数也会被作为环境记录添加到变量环境中。通过上面的变化我们可以知道在最新的 ECMA 标准中我们前面的变量对象 VO 已经有了另外一个称呼了变量环境 VE。作用域提升面试题面试题一varn100functionfoo(){n200}foo()console.log(n)面试题二functionfoo(){console.log(n)varn200console.log(n)}varn100foo()面试题三varn100functionfoo1(){console.log(n)}functionfoo2(){varn200console.log(n)foo1()}foo2()console.log(n)面试题四vara100functionfoo(){console.log(a)returnvara100}foo()面试题五functionfoo(){varab100}foo()console.log(b)console.log(a)这里的varab100// 转成下面两行代码vara100b100// 没有 var这个时候 JS 引擎会特殊处理这种将 b 加到 GO认识内存管理不管什么样的编程语言在代码的执行过程中都是需要给它分配内存的不同的是某些编程语言需要我们自己手动的管理内存某些编程语言可以自动帮助我们管理内存。不管以什么样的方式来管理内存内存的管理都会有如下的生命周期第一步分配申请你需要的内存申请第二步使用分配的内存存放一些东西比如对象等第三步不需要使用时对其进行释放不同的编程语言对于第一步和第三步有不同的实现手动管理内存比如 C、C包括早期的 OC都是需要手动来管理内存的申请和释放的malloc 和 free 函数自动管理内存比如 Java、JavaScript、Python、Swift、Dart 等它们有自动帮助我们管理内存我们可以知道 JavaScript 通常情况下是不需要手动来管理的。JS 的内存管理JavaScript 会在定义变量时为我们分配内存。内存分配方式JS 对于基本数据类型内存的分配会在执行时直接在栈空间进行分配JS 对于复杂数据类型内存的分配会在堆内存中开辟一块空间并且将这块空间的指针返回值给变量引用JS 的垃圾回收因为内存的大小是有限的所以当内存不再需要的时候我们需要对其进行释放以便腾出更多的内存空间。在手动管理内存的语言中我们需要通过一些方式自己来释放不再需要的内存比如 free 函数但是这种管理的方式其实非常的低效影响我们编写逻辑的代码效率并且这种方式对开发者的要求也很高并且一不小心就会产生内存泄漏所以大部分现代的编程语言都是有自己的垃圾回收机制垃圾回收Garbage Collection简称 GC对于那些不再使用的对象我们都称之为是垃圾它需要被回收以释放更多的内存空间而我们的语言运行环境比如 Java 的运行环境 JVMJavaScript 的运行环境 js 引擎都会有垃圾回收器垃圾回收器我们也会简称为 GC所以在很多地方你看到 GC 其实指的是垃圾回收器GC 怎么知道那些对象是不再使用的呢这里就要用到 GC 算法了。常见的 GC 算法-引用计数当一个对象有一个引用指向它时那么这个对象的引用就 1, 当一个独享的引用为 0 时这个对象就可以被销毁掉varp{name:kaimo}varp1{name:kaimo1,friend:p}varp2{name:kaimo2,friend:p}引用计数存在一个很大的弊端循环引用varobj1{friend:obj2}varobj2{friend:obj1}这样相互引用会导致内存泄漏常见的 GC 算法-标记清除标记清除这个算法是设置一个根对象root object垃圾回收器会定期从这个根开始找所有从根开始有引用到的对象对于哪些没有引用到的对象就认为是不可用的对象这个算法可以很好的解决循环引用的问题JS 引擎比较广泛采用的就是标记清除算法当然类似于 V8 引擎为了进行更好的优化它在算法的实现细节上也会结合一些其他的算法。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做一个网站的全部流程国外用wordpress

一、Full GC频繁的定位流程 1. 快速诊断流程图 flowchart TDA[发现Full GC频繁] --> B[立即收集现场证据]B --> C{分析GC日志}C --> D[确定GC类型]D --> E[系统级Full GC<br>System.gc()调用]D --> F[并发失败Full GC<br>CMS回收失败]D --> G[…

张小明 2025/12/25 12:41:39 网站建设

深圳快速网站制作哪家公司好常州网站建设教程

过去两年&#xff0c;“AI智能体&#xff08;AI Agent&#xff09;”这个词频频出现在各种会议和论文中。有人说它是“下一个操作系统”&#xff0c;有人说它将“重塑所有应用”。但在喧嚣背后&#xff0c;真正懂智能体逻辑的人却不多。 今天这篇文章&#xff0c;我们不讲空洞概…

张小明 2025/12/26 5:35:57 网站建设

大连网站备案怎么注册公司名

用EmotiVoice打造个性化语音助手&#xff0c;只需几秒音频样本 在智能设备无处不在的今天&#xff0c;语音助手早已不是新鲜事物。但你是否曾觉得&#xff0c;无论是Siri、小爱同学还是天猫精灵&#xff0c;它们的声音总像“别人家的孩子”——标准却陌生&#xff1f;如果能让你…

张小明 2025/12/27 1:34:59 网站建设

中国做外贸最好的网站德阳建设厅官方网站

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速开发一个Node.js环境检测工具原型&#xff0c;核心功能包括&#xff1a;1. 快速环境检测 2. 问题诊断 3. 最小化修复方案 4. 结果反馈。要求使用最简代码实现核心功能&#xff…

张小明 2025/12/27 13:38:05 网站建设

百度包头网站建设专门做旅游的网站有哪些

Ubuntu 移动应用选择指南 1. Trebuchet 应用介绍 OpenOffice 在移动设备上资源占用较高,为此 Ubuntu MID 团队开发了 Trebuchet(treb)应用,用于显示办公文件。它通过 OpenOffice 将文件转换为 PDF,再用 Evince 查看结果,关闭 Evince 后会删除临时 PDF 文件。 安装与运…

张小明 2025/12/27 10:01:29 网站建设

宜昌网站建设制作公司软件开发工具03173课后题

什么是AI Agent构建器&#xff1f;构建AI智能体的最基础方式是硬编码。如果你想使用一个抽象的AI Agent构建器来使这个过程更快、更容易维护&#xff0c;你可以从以下类型中选择&#xff1a;1. 基于工作流的构建器AI原生的工作流构建器后期改造了AI功能的工作流构建器2.非工作流…

张小明 2025/12/27 3:51:16 网站建设