-
一篇 JS 的 Fetch API 与 axios 库的详细对比
本文是我个人在学习 AJAX (也就是 JS 异步编程)时候的学习笔记,假设你已掌握 axios 和 XMLHttpRequest 的情况下撰写。 关于三种请求方式 IE 时代 JS 里发起请求的方式是使用 XMLHttpRequest 对象,可见 使用 XMLHttpRequest 对象。这个方式没有实现异步处理,代码阅读感受比较反直觉。 Axios 是一个成熟的库,封装了 XMLH... -
JS 里的 async & await 语法糖
应当在学完 Promise 实现异步编程 后才能理解此语法糖的优势。 先来看看两个关键字的作用: 基本概念 async:声明一个异步函数 async 关键字用于函数声明,它表示这个函数内部可能会有异步操作。声明的函数会返回一个 Promise。 async 函数有两大特点: 如果函数代码中 return 了一个非 Promise 的值(比如一个数字或字符串),这个值会被自动包装在一... -
Promise 实现 JS 异步编程
Promise 内部 promise 用于处理异步函数,有几个关键点: 创建对象实例的时候,promise 里的代码会立刻执行 所以事实上,一般往 promise 里放 setTimeout 这种异步代码。 promise 内部一般会使用两个方法: resolve() 成功时候使用,对应 已兑现(fulfilled) 状态 reject() 失败时候使用,对应 已拒绝(... -
一道经典的 JS 面试题弄懂事件循环
题目 1234567891011121314151617// 目标:回答代码执行顺序 console.log(1) setTimeout(() => { console.log(2) const p = new Promise(resolve => resolve(3)) p.then(result => console.log(result)) ... -
使用 XMLHttpRequest 对象
可参考:XMLHttpRequest:XMLHttpRequest() 构造函数 - Web API | MDN 三步简单使用 12345678910111213// 新建实例const xhr = new XMLHttpRequest() // 设置请求方法和网址xhr.open('请求方法', '请求url网址') // 无论成功失败都会触发此事件xhr.addEventLis... -
(2025-06-12)启梦小镇更新日志
Tips 既往的更新日志,以及 up 发布的一些悬赏任务,请见 🔗MC服务器运维日志 新增模组 [x] 1.19.4-1.1.0 - Show Me What You Got 聊天中展示物品 [x] Emojiful-Fabric-1.20.1-4.2.0 - Emojiful — Emojiful-Fabric-1.20.1-4.2.0 - Emojiful 聊天表情 ... -
在 JS 里实现防抖和节流处理,以优化性能
节流和防抖都可以通过 lodash 库函数使用,分别是: _.debounce _.throttle 防抖 每次触发事件的时候,立即取消上次的触发,并且开始新的等待。如果在指定时间内确实没有再触发,才会真的开始执行事件。 Tip 可以想象一直在长按某个点击按钮,但是必须停下来,才能触发第二次。 常见案例 输入框实时搜索(比如用户输入关键词时的接口请求) 防止用户... -
使用 `call`, `apply`, `bind` 改变 JS 中 this 的指向
用法与区别 为了方便对比,我们用一个表格来清晰地展示它们的核心区别: 方法 作用 参数 返回值 执行时机 call() 调用函数,并指定 this 值 thisArg, arg1, arg2, … (参数列表) 函数的执行结果 立即执行 apply() 调用函数,并指定 this 值 thisArg, [arg1, arg2, ...] (参数数组) 函数的执行结果 立即... -
JS 里三种途径比较深拷贝
深拷贝的三种方式