96SEO 2026-02-20 07:04 17
本文为反复学习极客时间-《浏览器的工作原理与实践》-浏览器中的

引擎把变量的声明部分和函数的声明部分提升到代码开头的“行为”。
变量被提升后会给变量设置默认值这个默认值就是我们熟悉的
undefined。
从概念的字面意义上来看“变量提升”意味着变量和函数的声明会在物理层面移动到代码的最前面正如我们所模拟的那样。
但这并不准确。
实际上变量和函数声明在代码里的位置是不会改变的而且是在编译阶段被
调用栈就是用来管理函数调用关系的一种数据结构在执行上下文创建好后
引擎会将执行上下文压入栈中通常把这种用来管理执行上下文的栈称为执行上下文栈又称调用栈
定义作用域是指在程序中定义变量的区域该位置决定了变量的生命周期。
通俗地理解作用域就是变量与函数的可访问范围即作用域控制着变量和函数的可见性和生命周期。
全局作用域。
全局作用域中的对象在代码中的任何地方都能访问其生命周期伴随着页面的生命周期。
函数作用域。
函数作用域就是在函数内部定义的变量或者函数并且定义的变量或者函数只能在函数内部被访问。
函数执行结束之后函数内部定义的变量会被销毁。
在每个执行上下文的变量环境中都包含了一个外部引用用来指向外部的执行上下文我们把这个外部引用称为outer。
当一段代码使用了一个变量时JavaScript
引擎首先会在“当前的执行上下文”中查找该变量如果在当前的变量环境中没有查找到那么
指作用域是由代码中函数声明的位置来决定的词法作用域是静态的作用域通过它就能够预测代码在执行过程中如何查找标识符。
词法作用域是代码阶段就决定好的和函数是怎么调用的没有关系
中根据词法作用域的规则内部函数总是可以访问其外部函数中声明的变量当通过调用一个外部函数返回一个内部函数后即使该外部函数已经执行结束了但是内部函数引用外部函数的变量依然保存在内存中我们就把这些变量的集合称为闭包。
比如外部函数是
如果引用闭包的函数是一个全局变量那么闭包会一直存在直到页面关闭但如果这个闭包以后不再使用的话就会造成内存泄漏如果引用闭包的函数是个局部变量等函数销毁后在下次
引擎的垃圾回收器就会回收这块内存。
原则—如果该闭包会一直使用那么它可以作为全局变量而存在但如果使用频率不高而且占用内存又比较大的话那就尽量让它成为一个局部变量。
的“严格模式”在严格模式下默认执行一个函数其函数的执行上下文中的
environment词法环境的引用捆绑在一起构成闭包closure。
Workers或者任何异步中只要使用了回调函数实际上就是在使用闭包。
可以访问另一个函数内部的局部变量让这些变量始终保持在内存中即闭包可以使得它诞生环境一直存在。
同一个闭包机制可以创建多个闭包函数出来它们彼此没有联系都是独立的并且每个闭包函数可以保存自己个性化的信息。
11.this从JavaScript执行上下文的视角讲清楚this
JavaScript》(上卷)翻了翻目录感觉里面的知识点都见过都知道呀就匆匆关上了放到一边。
*
因为对闭包的理解存在一些疑问终于认真地看了这本书发现了其中魅力之处。
作者的写作方式也让读者感到
interesting然后不禁发出和书中同样的感慨“妈妈快来看呀这就是闭包”。
*
提到“想弄清楚事物的工作原理”让我意识到学习知识应该要有探索的精神不仅要知其然还要知其所以然。
前段时间有些浮躁、有些急功近利看了一大堆面试题很多都是浅尝辄止流于表面。
我想这应该是很多人都在走的路但我们不能一直这样面试题可以帮助我们完善知识体系查漏补缺但很多知识点都需要自己去针对性地学习、去实践别人几句话总结出来的答案更需要我们带着批判性精神去审视不能盲目吸收。
*
如果你想从这篇文章中完全掌握闭包那么笔者只能说“小朋友你还是涉世未深~”。
*
中对闭包的定义“闭包是指有权访问另外一个函数作用域中的变量的函数”就洋洋得意以为拿下了闭包这个大
BOSS。
不管面试官听了作何感想反正现在看来是自己都说服不了自己。
*
学东西还是得踏踏实实的现在能比较正确地理解和使用闭包首先得益于极客时间-《浏览器的工作原理与实践》-[浏览器中的
执行机制]章节让我以前很多模糊的概念有了清晰的认知。
题外话这个课程真的是强推走过路过千万不要错过。
然后是在一些技术博客上看到关于闭包的分析心中存有一些疑问于是再读《浏览器的工作原理与实践》对应内容但并未得到解答。
看到评论区中有推荐《你不知道的
JavaScript》(上卷)作为补充学习的建议于是开始仔细阅读这本书有了今日的收获。
*
JavaScript》或者《浏览器的工作原理与实践》来理解闭包还可以参考
整理了75个JS高频面试题并给出了答案和解析基本上可以保证你能应付面试官关于JS的提问。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback