Published onOctober 27, 2025Async/AwaitJavaScriptAsync/Awaitasync/await 是什么? "async/await 是 JavaScript 处理异步操作(如网络请求、文件读取)的"语法糖",它让我们能用写同步代码的方式写异步逻辑,避免层层嵌套的回调函数。 底层依赖 Generator 的暂停/恢复机制和 Promise 的状态管理,async 函数总返回 Promise,即使内部返回普通值也会被自动包装为 Promise.resolve(value)...
Published onOctober 27, 2025PromiseJavaScriptPromise什么是 Promise ? Promise 是 es6 提出的处理异步任务的"承诺容器"。它只有三个状态 pending,fulfilled,rejected,状态一旦从 pending 变成后面两个,就不会再发生变化了,支持链式调用,通过.then() 方法,可以将异步任务的结果参数传递下去,实现了更好的异步任务执行控制和错误处理。 为什么要有 Promise?解决了什么问题? 在 Promis...
Published onOctober 27, 2025前端路由JavaScriptRouter前端路由是什么? 前端路由能让浏览器不重新加载整个页面的条件下,通过改变 url 展示不同的组件,从而实现页面跳转的全前端(JavaScript)控制,是 SPA 的基础 为什么要有前端路由? 1. 传统后端路由,在跳转后会先白屏,等接口重新返回 html 后,才能正常展示,前端路由可以实现"无缝切换" 2. 降低了服务端压力,无需每个页面都重新请求页面资源(CSS/JS) 3. 支持复杂应用交互...
Published onOctober 21, 2025节流防抖throttledebounceJavaScript什么是节流/防抖?防抖是延迟执行最后一次,节流是固定频率执行 1. 防抖:当用户在某一个时间段内,连续触发时,只在最后实际执行一次。比如我给表单的提交按钮,加了 1s 防抖,则用户如果在 1s 内点了 10 次,我也只在最后触发一次回调事件 2. 节流:当用户在某一个时间段内,连续触发时,限定它的触发频率。比如我给 scroll 监听事件加了 1s 节流,则用户在页面滚动过程中,不管他滚动的多快(...
Published onOctober 20, 2025闭包JavaScriptIIFE这篇我们来关注闭包 什么是闭包? 闭包是由函数和它所在词法环境组合而成的实体,这个环境包含了闭包创建时,所能访问的所有局部变量。所以当外部函数已经执行完后,依然可以通过闭包(内部函数)访问到当时词法环境的变量。 如何创建闭包: 1. 存在函数嵌套(在外部函数中,再定义一个内部函数) 2. 内部函数使用了外部函数中的变量 3. 内部函数被导出,包括三种场景:(1)直接将内部函数作为返回值;(2)作为...