摘要: 导航 用户输入 用户在地址栏按下回车,检查输入(关键字 or 符合 URL 规则),组装完整 URL; 回车前,当前页面执行 onbeforeunload 事件; 浏览器进入加载状态。 HTTP请求过程 浏览器进程通过 IPC 把 URL 请求发送至网络进程; 查找资源缓存(有效期内); DNS 解 阅读全文
posted @ 2023-02-17 13:42 哥哦狗子 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 。。。 阅读全文
posted @ 2023-01-04 20:47 哥哦狗子 阅读(29) 评论(0) 推荐(0) 编辑
摘要: JavaScript 引入 Promise 的动机 消灭嵌套调用和多次错误处理 阅读全文
posted @ 2023-01-04 20:44 哥哦狗子 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 消息队列和事件循环系统来驱动浏览器页面 页面中的大部分任务都是在主线程上执行的,这些任务包括了: 渲染事件(如解析 DOM、计算布局、绘制); 用户交互事件(如鼠标点击、滚动页面、放大缩小等); JavaScript 脚本执行事件; 网络请求完成、文件读写完成事件。 为了协调这些任务有条不紊地在主线 阅读全文
posted @ 2023-01-03 22:54 哥哦狗子 阅读(55) 评论(0) 推荐(0) 编辑
摘要: JavaScript 属于解释型语言,解释型语言编写的程序,在每次运行时都需要通过解释器对程序进行动态解释和执行。 解释器对源代码进行词法分析、语法分析,并生成抽象语法树(AST)和执行上下文。 根据 AST 生成字节码,并解释执行字节码。 生成字节码之后,接下来就要进入执行阶段了。 生成抽象语法树 阅读全文
posted @ 2023-01-03 21:19 哥哦狗子 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 因为数据是存储在栈和堆两种内存空间中的,所以接下来我们就来分别介绍“栈中的垃圾数据”和“堆中的垃圾数据”是如何回收的。 调用栈中的数据是如何回收的 当一个函数执行结束之后,JavaScript 引擎会通过向下移动 ESP 来销毁该函数保存在栈中的执行上下文。 举例: function foo(){ 阅读全文
posted @ 2023-01-03 19:22 哥哦狗子 阅读(105) 评论(0) 推荐(0) 编辑
摘要: JavaScript 是什么类型的语言 JavaScript 是一种弱类型的、动态的语言。那这些特点意味着什么呢? 弱类型:支持隐式类型转换的语言称为弱类型语言,不支持隐式类型转换的语言称为强类型语言。意味着你不需要告诉 JavaScript 引擎这个或那个变量是什么数据类型,JavaScript 阅读全文
posted @ 2023-01-03 15:52 哥哦狗子 阅读(376) 评论(1) 推荐(0) 编辑
摘要: 无论是在面试场景下,还是在实际的开发中,React 事件相关的问题都更倾向于考验我们对事件工作流、事件特征等逻辑层面问题的理解,而非对源码细节的把握。所以掌握事件工作流、事件特征等逻辑层面的“主要矛盾”就可以。 回顾原生 DOM 下的事件流 W3C 标准约定了一个事件的传播过程要经过以下 3 个阶段 阅读全文
posted @ 2022-12-30 18:00 哥哦狗子 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 为什么会产生“卡顿”这样的困局? JavaScript 线程和渲染线程必须是互斥的:这两个线程不能够穿插执行,必须串行。当其中一个线程执行时,另一个线程只能挂起等待。在这样的机制下,当处理结构相对复杂、体量相对庞大的虚拟 DOM 树时,Stack Reconciler 需要的调和时间会很长,这就意味 阅读全文
posted @ 2022-12-29 23:02 哥哦狗子 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 从一道面试题说起 import React from "react"; import "./styles.css"; export default class App extends React.Component{ state = { count: 0 } increment = () => { 阅读全文
posted @ 2022-12-29 22:32 哥哦狗子 阅读(30) 评论(0) 推荐(0) 编辑