记录技术,也记录思考
一个基于 FastAPI 构建的个人博客,用清晰的代码记录真实的学习过程。
最新文章
手搓一个Tiny版本的vue
这篇文章写一个**最小可跑的 Tiny Vue**:不做 VNode、不做 Diff、不做组件系统、不做异步批量更新,只实现一条链路——`reactive` 拦截读写、`effect` 登记副作用、`track` 收集依赖、`trigger` 派发更新,最后 `state.count++` 立即更新 DOM。它适合面试前背下来当作响应式核心的「最小骨架」。
阅读全文vue-router 原理和常用方法
vue-router 负责把浏览器的地址翻译成「该显示哪个组件」,是 Vue 单页应用(SPA)里前端路由的事实标准。面试时抓住一条主线就能应付大部分问题:**读取地址 → 匹配路由表 → 执行导航守卫 → 更新响应式的当前路由 → 渲染组件**。其中「地址写在哪里」决定了 hash 和 history 两种模式的差异,「守卫按什么顺序执行」决定了鉴权、数…
阅读全文浏览器渲染流程:从输入域名到页面显示
浏览器渲染流程可以分成两条互相配合的链路:网络链路负责把服务器返回的 HTML、CSS、JavaScript 和图片下载回来;渲染链路负责把这些字节解析成 DOM、CSSOM、渲染树,经过布局、绘制、
阅读全文Object 常用属性与方法:从读取到保护的实战指南
## 目录 - [一、先建立一张方法地图](#一先建立一张方法地图) - [二、读取对象:keys、values、entries](#二读取对象keysvaluesentries) - [三、转换对象:entries 与 fromEntries](#三转换对象entries-与-fromentries) - [四、复制与合并:assign 的边界](#四复…
阅读全文Map、Set、WeakMap、WeakSet的区别和应用
在 JavaScript 中,Map、Set、WeakMap 和 WeakSet 是 ES6 引入的四种新型数据结构,它们各自解决了不同场景下的数据组织问题,核心差异体现在键的类型、引用方式以及是否可迭代三个方面。
阅读全文Promise:把异步任务变成可组合的结果
Promise 是 JavaScript 中用于异步编程的核心对象,用来解决传统回调函数导致的“回调地狱”问题。它代表一个尚未完成但未来会完成的异步操作(如网络请求、文件读取)的最终结果(成功或失败)。
阅读全文闭包:函数为什么能记住已经离开的作用域
闭包(Closure)是“函数 + 它定义时可访问的词法环境”。常见情况是外层函数返回内层函数,内层函数仍引用外层变量;只要内层函数还可达,这些变量就会保持可访问,不会被立即垃圾回收。事件回调和定时器回调也可能形成闭包。
阅读全文事件循环(Event Loop)完整解析
事件循环(Event Loop)是 JavaScript 运行时协调同步代码、异步回调和任务队列的一套机制。JavaScript 主线程一次只执行一个调用栈,但浏览器或 Node.js 会把定时器、网络请求等异步结果放入任务队列,等调用栈空闲后再取出执行。面试时要重点说清楚:同步代码先执行;当前任务结束后清空微任务;然后才有机会执行下一个宏任务,并在浏览器中安排渲染。
阅读全文