- 博客(20)
- 收藏
- 关注
原创 Vuex 核心原理与使用指南
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储来管理应用中所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。- 它把分散在各个组件中的共享状态,抽离到一个独立的「仓库(Store)」里统一管理- 它规定了严格的状态修改流程,让状态变化可追踪、可调试- 它和 Vue 的响应式系统深度集成,状态更新后会自动同步到所有依赖组件的视图。
2026-04-01 16:02:45
365
原创 8-从回调函数到 Promise 再到 async/await:JavaScript 异步编程完整演进之路
在前端开发中,异步编程是绕不开的核心话题 —— 从最早的 AJAX 请求数据,到如今复杂的前后端交互,异步逻辑贯穿了几乎所有业务场景。本文将从最基础的 AJAX 与回调函数 出发,一步步拆解异步编程的演进路径:先回顾回调函数的实现原理与闭包应用,再分析其 “回调地狱” 的痛点;接着引入 Promise 方案,看它如何用链式调用解决嵌套问题;最后进阶到,体验最接近同步代码的异步编程范式。通过完整对比三种方案,你将清晰理解:为什么回调函数是起点,Promise 是优化,而才是现代前端异步编程的最终选择。
2026-03-30 10:46:09
456
原创 7-Promise 从 A+ 规范到 JS 实战:完整原理与 API 全解析
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考Promise/A+ 规范对 Promise 做了最本质的抽象描述:Promise 是一个对象或函数,包含一个then方法,且该方法的行为符合本规范。这是一种鸭子类型的定义:只要一个实体(对象 / 函数)实现了符合规范的then方法,就可以被称为 Promise,不限制具体实现语言和底层实现方式。
2026-03-27 16:01:35
475
原创 4-Promise/A+ 规范:引用不可变 + 核心术语(对象 / 函数)详解
在核心术语部分强调了异步操作成功的结果和失败的原因,引用不可变。下面来探讨下这里的“引用不可变”究竟是想表达什么。引用不可变 = Promise 一旦成功 / 失败,它的结果 “本体” 永远不会被换掉,你只能改里面的内容,不能换一个新对象。这样异步代码才安全、稳定、可预测。
2026-03-24 09:52:19
345
原创 3-Promise/A+ 规范补充之回调函数:JavaScript 异步的基石与困境
在 JavaScript 世界里,异步编程是绕不开的核心能力。从定时器、网络请求到事件监听,几乎所有需要 “等待” 的场景,都离不开异步逻辑。而在 Promise、async/await 这些现代方案出现之前,回调函数是 JavaScript 异步编程最原始、最基础的实现方式。它简单、直接、兼容性好,但也因为嵌套问题,在复杂业务中容易演变成难以维护的 “回调地狱”。
2026-03-21 19:56:39
397
原创 2-深入理解 Promise/A+ 规范:从异步乱象到标准化的演进之路
在日常开发中,我们经常使用 Promise,只是大多时候接触到的是 Axios、fetch 这类库封装后的异步方案,它们的底层都依赖 Promise 来处理异步逻辑。而正是Promise/A+ 规范,让 React、Vue 等不同框架,以及 Axios、fetch 等各类库中的 Promise 行为能保持高度一致 —— 它给 Promise 定下了一套统一的 “行为准则”,不管是谁实现的 Promise,都得遵守这套规则,所以大家才能无缝配合、互相兼容。
2026-03-21 19:33:16
438
原创 深度解析 Vue 插槽(Slot):从底层原理到实战应用
在 Vue 组件化开发的进阶之路中,插槽(Slot)是最核心的特性之一。Vue 作为 “模板化” 框架,与 React 的 “函数化” 形成了鲜明对比,而插槽正是 Vue 为解决模板结构不确定问题而设计的灵魂方案。本文将从模板化的挑战入手,深入剖析默认插槽的底层实现原理、具名插槽的漏斗理论,以及作用域插槽的数据反向传递,带你彻底吃透插槽!通过给<slot>标签添加 name 属性,定义多个专属 “坑位”。-- 内容坑 -->-- 底部链接坑 -->
2026-03-18 16:49:53
425
原创 “箭头函数的设计初衷是简化回调、绑定词法 this”的补充说明
上篇中提到箭头函数不能作为构造函数,核心原因是箭头函数没有自己的 this,也没有 prototype,不满足构造函数的底层要求。箭头函数的设计初衷是简化回调、绑定词法 this,完全不适合扮演「构造对象」的角色,因此不能通过 new 调用,也不能作为构造函数。这里来补充对于这句话的一些理解。console.log('sayHi里的this:', this);// 依然指向 obj// 箭头函数:捕获外层 sayHi 函数的 this(也就是 obj)// 输出 'Alice',this 没有跑飞。
2026-03-10 09:53:07
69
原创 JavaScript 面向对象核心:构造函数、原型 / 原型链与继承全解
在 JavaScript 面向对象编程中,构造函数与继承是核心基础概念,也是前端面试高频考点。先从最直观的定义入手,理解面向对象的底层逻辑。任何函数都可以作为构造函数。当函数通过 new 关键字调用时,它就成为了构造函数(箭头函数除外)。构造函数的核心作用:通过 new 关键字,批量创建具有相同属性和方法的对象实例,实现代码复用。// 仅定义函数时,它只是普通函数// 通过 new 调用后,Parent 就成为了构造函数,用于实例化对象每个普通函数。
2026-03-09 14:34:20
394
原创 解答上篇中关于事件循环的困惑
事件循环的每一轮,都从执行一个宏任务开始,这是规范定义的启动方式。微任务的高优先级,体现在它会在当前宏任务之后、下一个宏任务之前被全部清空,保证了高优先级逻辑的及时执行。
2026-03-03 15:52:23
298
原创 浏览器运行原理学习笔记(自梳)
在学习浏览器工作原理时,我常常被 “进程”“线程”“事件循环” 等名词困扰。为了建立一个清晰、系统的认知框架,我将所学知识进行梳理和总结,形成了这份学习笔记。本文将从浏览器的宏观架构入手,逐步深入到渲染进程的内部机制,最终解释清楚 JavaScript 单线程与浏览器异步能力的底层逻辑。渲染进程是浏览器分配给页面的独立工作空间。在这个空间里,渲染引擎负责画页面,JS 引擎负责跑代码,它们是渲染进程里的两个核心模块。
2026-02-26 10:56:21
798
原创 JavaScript 对象创建 补充1
类型无法区分:所有通过工厂函数创建的对象,本质都是 Object 实例,无法识别自定义类型场景局限:若需对对象进行类型判断(如区分「人」和「汽车」),工厂函数完全无法满足。// 封装创建逻辑(工厂函数:首字母小写,普通函数)// 1. 创建空对象// 2. 给对象添加属性和方法// 3. 返回对象return obj;// 批量创建对象(无需重复写结构)var person1 = createPerson("张三", 18);
2026-02-25 10:21:54
1063
原创 JavaScript 对象创建:从基础到原型链,10种方式+底层原理
在 JavaScript 中,对象是数据和行为的载体,而对象创建方式的演进,本质上是「解决代码冗余、优化内存占用、明确类型标识、支持复杂继承」的过程。本文将以「问题驱动」的思路,从最基础的创建方式出发,逐步深入 new 操作符底层、原型 / 原型链核心知识,最终梳理出 10 种对象创建方式的完整演进链路,帮你彻底理解 JavaScript 面向对象的本质。兼顾「独立性」和「共享性」,无明显缺陷;兼容性好(支持 ES5 及以下环境);逻辑清晰,易于维护。
2026-02-24 12:28:27
886
原创 JavaScript中的this
本文结合前端面试的高频考点,从this的核心本质、绑定规则(隐式 / 显式 /new/ 箭头函数)到优先级排序,全面拆解 JavaScript 中this的指向问题。this是 JavaScript 中的关键字,它不是变量也不是属性,不能直接赋值(如this=xxx会报错)。在全局作用域 / 模块顶层:它的指向由执行环境决定(浏览器环境指向 window,Node.js 模块指向 module.exports, ES 模块(ESM)环境指向 undefined),和函数调用无关。见2.1详解。
2026-02-06 18:26:09
765
原创 JavaScript 闭包的补充1
定义:内层函数引用外层函数变量,且内层函数被外部执行,形成 “函数 + 词法环境” 的组合。核心:外部函数执行完,内部仍能访问其变量(变量不销毁、突破作用域限制)。关键条件:函数嵌套 + 内部引用外层变量 + 内部函数被外部调用。下面来解释这里的核心:外部函数执行完,内部仍能访问其变量(变量不销毁、突破作用域限制)。变量不销毁:因为内部函数还在被外部引用,所以它依赖的外层变量会一直留在内存中,不会被回收。突破作用域限制。
2026-02-05 10:01:08
415
原创 JavaScript 闭包
计算机科学中的定义闭包(Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures)。它是在支持头等函数的编程语言中,实现词法绑定的一种技术。闭包在实现上是一个结构体,它存储了一个函数和一个关联的环境(相当于一个符号查找表)。MDN 对 JavaScript 闭包的定义一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这种组合就是闭包。
2026-02-02 19:01:18
670
原创 JavaScript 作用域链
通俗地讲,作用域链就是用来描述变量的查找过程。当我们所需要的变量在当前作用域中找不到时,它就会一层一层向上查找,直到找到全局作用域。如果还没找到,就会返回 undefined(或在严格模式下报错)。这种一层一层的查找关系,就是作用域链。从专业角度定义:作用域链是变量查找的线路,即 [[scope]] 中所存储的执行期上下文对象的集合,这个集合呈链式连接,我们把这种链式连接叫做作用域链。:简单来说,指的就是 JavaScript 代码正在被执行的那个时间段。
2026-02-02 18:18:03
628
原创 JavaScript 作用域
变量与函数的可访问范围,控制着变量与函数的可见性和生命周期。作用域是 JavaScript 的基础,也是理解闭包、模块化等高级概念的前提。全局作用域:变量随处可用,风险高。函数作用域:变量 “函数私有”,执行后销毁。块级作用域:通过 let/const 实现,变量 “块内私有”。
2026-02-01 16:54:03
1095
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅