南阳专业做网站国外优秀网站设计欣赏

张小明 2026/1/19 18:55:35
南阳专业做网站,国外优秀网站设计欣赏,建设银行公司官网,合肥微网站制作全局代码执行过程-函数 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进行投诉反馈,一经查实,立即删除!

做网页课件的网站昌吉做网站

PyTorch-CUDA-v2.7 镜像深度解析:为何它成为现代AI开发的首选环境 在深度学习项目中,你是否曾为配置GPU环境耗费数小时?明明代码没问题,却因为CUDA版本不匹配、cuDNN缺失或PyTorch编译错误导致训练无法启动。这种“环境地狱”几乎…

张小明 2026/1/17 18:13:24 网站建设

百度推广建设网站是干什么了网站建设shundeit

智能办公效率终极指南:5步快速搭建完整自动化系统 【免费下载链接】core home-assistant/core: 是开源的智能家居平台,可以通过各种组件和插件实现对家庭中的智能设备的集中管理和自动化控制。适合对物联网、智能家居以及想要实现家庭自动化控制的开发者…

张小明 2026/1/17 5:43:17 网站建设

管家婆免费资料网站外贸型网站

jQuery EasyUI 菜单与按钮 - 创建链接按钮&#xff08;Link Button&#xff09; jQuery EasyUI 的 linkbutton 组件是一个美化的超链接按钮&#xff08;基于 <a> 标签&#xff09;&#xff0c;支持图标、文本、不同大小、纯图标模式、启用/禁用状态、切换&#xff08;to…

张小明 2026/1/17 18:13:25 网站建设

外贸企业网站红色风格做网站生意不赚钱

Windows 7终极解决方案&#xff1a;免费获取最后一个VSCode免安装版 【免费下载链接】Windows7上最后一个版本的VSCodev1.70.3解压免安装版本 本仓库提供了一个适用于 Windows 7 的最后一个版本的 Visual Studio Code&#xff08;VSCode&#xff09;&#xff0c;版本号为 v1.70…

张小明 2026/1/17 18:13:27 网站建设

山西响应式网站建设推荐怎样做一个app

联想拯救者BIOS高级设置精通指南&#xff1a;从入门到专家级配置 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具&#xff0c;例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.com/gh_mirrors/le…

张小明 2026/1/17 18:13:29 网站建设

做网站互联网公司排名注册公司网站多少钱

跨平台开发与HarmonyOS生态融合的趋势下&#xff0c;利用Flutter快速构建UI、DevEco Studio适配HarmonyOS设备的开发模式&#xff0c;能有效提升应用开发效率。本文将以“简易天气查询工具”为案例&#xff0c;详细讲解Flutter与DevEco Studio结合开发的全流程&#xff0c;涵盖…

张小明 2026/1/17 18:13:29 网站建设