CodingWithAlice

我的一方小天地,如果对你有帮助,那真的太好了

16 XMLHttpRequest机制 - 异步回调

16 XMLHttpRequest机制 - 异步回调 XMLHttpRequest解决的问题 在 XMLHttpRequest 出现之前,如果服务器数据有更新,依然需要重新刷新整个页面; XMLHttpRequest 提供了从 Web 服务器获取数据的能力,如果你想要更新某条数据,只需要通过 XMLHttpRequest 请求服务器提供的接口,就可以获取到服务器的数据,然后再操作 DOM...

15 setTimeout

15 setTimeout - 延迟消息队列 浏览器怎么实现 setTimeout? 渲染进程中所有运行在主线程上的任务都需要 先添加到消息队列 (step1),然后 事件循环系统 (step2)再按照 顺序执行消息队列 中的任务 典型事件: 当接收到 HTML 文档数据,渲染引擎就会将 解析 DOM 事件添加到消息队列中 当用户改变了 Web 页面的窗口大小,渲染引擎就会将 ...

浏览器和node的事件循环

浏览器和node的事件循环 参考博客:浏览器和Node事件循环的区别 总结: 浏览器和Node事件循环的区别 Event Loop即事件循环,是指浏览器 或 Node的一种 解决javaScript单线程运行时不会阻塞 的一种机制,也就是我们经常使用异步的原理。 一、浏览器事件循环 1、JS的主线程是【单线程】 但是 ajax和 setTim...

14 任务调度系统

14 任务调度系统 任务调度系统 - 组成:消息队列 + 事件循环 为什么渲染主线程需要任务调度系统? 可以看如下图的任务,除了线程之间的相互通信,还有跨进程发送的任务 消息队列中的任务类型 内部消息类型,如输入事件(鼠标滚动、点击、移动)、微任务、文件读写、WebSocket、JavaScript定时器等; 还包含了很多与页面相关的事件,如 JavaScript 执行...

13-2 JS如何影响DOM树的构建

13-2 JS如何影响DOM树的构建 什么是DOM? 渲染引擎无法直接识别网络进程传递的 HTML 字节流,而 DOM 就是能理解的结构 DOM的作用: 1、页面 – DOM是生成页面的 基础数据结构 2、JS脚本 – DOM提供了 JS脚本操作的接口,JS可以修改 DOM 结构、样式、内容 3、安全 – 不安全的内容 在 DOM 解析阶段就...

13 V8如何解析js代码 - 编译器+解析器

13 V8如何解析js代码 - 编译器+解释器 1、语言类型分类 解释型语言 – js、python等,每次都需要 解释器 对程序进行动态解释和执行 编译型语言 – C/C++、GO等,需要编译,编译后生成 二进制文件 并保留,下次可以直接执行 2、概览V8解析一段js代码 流程概括:V8 依据 JavaScript 代码生成 AST 和执行上下文,再基于 AST 生成 字节码,然...

12 垃圾回收机制

12 垃圾回收机制 总结: 栈:调用栈的清空方式 - 通过移动 指针 ,将不再需要的数据所在的内存,在后续调用其他函数时,直接覆盖 堆:v8引擎中,基于代际假说 -> 分代式垃圾回收机制,区分「新生代-副垃圾回收机制」「老生代-主垃圾回收机制」 流程:主、副垃圾回收器有同一套共同流程,①标记活动/非活动对象 -> ②回收非活动对象 -> ...

11 栈和堆

11 栈和堆 几个基础概念: 静态语言:在声明变量之前需要先定义变量类型,例如C 动态语言:在运行过程中需要检查数据类型的语言,例如JS 弱类型语言:支持隐式类型转换的语言 强类型语言:不支持隐式类型转换的语言 JS是一种弱类型(不需要提前声明类型,JS在运行代码时自己计算),动态类型(一个变量可以保存多种类型的数据)语言。【热知识:js中字符串不能被修改】 js数据类型 ...

10 执行上下文视角的 this

10 执行上下文视角的 this 作用域链和this是两套不同的体系,唯一的关系是在全局上下文中的this指向window对象,作用域链的最底端包含了window对象 ## this是什么 如下图所示,`this`是和执行上下文绑定的,每个执行上下文中都有一个`this`,按照执行上下文的分类,`this`也可以分为三类: - 全局执行上下文中的`this` 函数执行上...

09 闭包

09 闭包 理论: ​ 在 JavaScript 中,根据 词法作用域 的规则,内部函数总是可以访问其外部函数中声明的变量,当通过调用一个外部函数返回一个内部函数后,即使该外部函数已经执行结束了,但是内部函数引用外部函数的变量依然保存在内存中,我们就把这 些变量的集合称为闭包。 闭包的重点:在函数内部定义其他函数返回!!!不是调用外部作用于域块就能够直接形成的。 闭包优缺点: ...