摘要: 消息队列和事件循环系统来驱动浏览器页面 页面中的大部分任务都是在主线程上执行的,这些任务包括了: 渲染事件(如解析 DOM、计算布局、绘制); 用户交互事件(如鼠标点击、滚动页面、放大缩小等); JavaScript 脚本执行事件; 网络请求完成、文件读写完成事件。 为了协调这些任务有条不紊地在主线 阅读全文
posted @ 2023-01-03 22:54 哥哦狗子 阅读(58) 评论(0) 推荐(0) 编辑
摘要: JavaScript 属于解释型语言,解释型语言编写的程序,在每次运行时都需要通过解释器对程序进行动态解释和执行。 解释器对源代码进行词法分析、语法分析,并生成抽象语法树(AST)和执行上下文。 根据 AST 生成字节码,并解释执行字节码。 生成字节码之后,接下来就要进入执行阶段了。 生成抽象语法树 阅读全文
posted @ 2023-01-03 21:19 哥哦狗子 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 因为数据是存储在栈和堆两种内存空间中的,所以接下来我们就来分别介绍“栈中的垃圾数据”和“堆中的垃圾数据”是如何回收的。 调用栈中的数据是如何回收的 当一个函数执行结束之后,JavaScript 引擎会通过向下移动 ESP 来销毁该函数保存在栈中的执行上下文。 举例: function foo(){ 阅读全文
posted @ 2023-01-03 19:22 哥哦狗子 阅读(112) 评论(0) 推荐(0) 编辑
摘要: JavaScript 是什么类型的语言 JavaScript 是一种弱类型的、动态的语言。那这些特点意味着什么呢? 弱类型:支持隐式类型转换的语言称为弱类型语言,不支持隐式类型转换的语言称为强类型语言。意味着你不需要告诉 JavaScript 引擎这个或那个变量是什么数据类型,JavaScript 阅读全文
posted @ 2023-01-03 15:52 哥哦狗子 阅读(410) 评论(1) 推荐(0) 编辑