简单讲解一下 http2 的多路复用
HTTP/2 的多路复用(Multiplexing)是其核心特性之一,它大大提高了网络通信的效率。以下是对 HTTP/2 多路复用的简单讲解: 什么是多路复用? 多路复…
JavaScript 如何实现一个 new
要手动实现一个 new 操作符,首先要知道 new 操作符都做了什么事,即构造函数的内部原理: 创建一个新对象; 链接到原型(将构造函数的 prototype 赋…
Promise 构造函数是同步执行还是异步执行,那么 then 方法呢?
在 JavaScript 中, Promise 构造函数和 then 方法有不同的执行方式: 1. Promise 构造函数 同步执行 : 当你创建一个 Promise 实例时,构造函数的执行…
JS 异步解决方案的发展历程以及优缺点
JavaScript 异步解决方案的发展经历了几个阶段,每种方案都有其优缺点: 1. 回调函数 (Callbacks) 优点: 简单直接 : 适用于简单的异步任务。 缺点: …
Async/Await 如何通过同步的方式实现异步?
如果你希望以同步方式实现异步操作,可以使用 Promise 和 then/catch 链来模拟 async/await 的效果。通过链式调用可以处理异步操作并保持代码结构的清…
ES5/ES6 的继承除了写法以外还有什么区别?
在 ES5 和 ES6 中,继承机制不仅仅在写法上有区别,还有一些底层实现和行为上的差异。以下是 ES5 和 ES6 继承的主要区别: 1. 原型链的构建方式不同 E…
请分别用深度优先思想和广度优先思想实现一个拷贝函数?
实现深度优先思想(DFS)和广度优先思想(BFS)的深拷贝函数,分别模仿这两种遍历方式,处理对象和数组等复杂结构的数据复制。深拷贝函数会递归地复制…
深度优先遍历和广度优先遍历
深度优先遍历(Depth-First Search,DFS)和广度优先遍历(Breadth-First Search,BFS)是两种常见的图或树的遍历算法。它们在遍历顺序和应用场景上有…
介绍下 Set、Map、WeakSet 和 WeakMap 的区别?
Set 、 Map 、 WeakSet 和 WeakMap 都是 JavaScript 中用于存储集合数据的对象,但它们在行为、存储特性和应用场景上有所不同。下面详细介绍它们的区…
什么是防抖和节流?有什么区别?如何实现?
节流函数(每调用一次后在规定的时间 wait 内不可再次调用) function throttle(callback,wait){ let last = Date.now(); return function(...args){ …
写 React / Vue 项目时为什么要在列表组件中写 key,其作用是什么?
key 的作用是更新组件时 判断两个节点是否相同 。相同就复用,不相同就删除旧的创建新的。 带唯一 key 时,如果新旧节点 key 不一样,不但要销毁和创…
在 Linux 中像专业人士一样使用 GNOME 截图工具
有 几个可用于 Linux 的截图工具 ,我喜欢 使用 Flameshot 进行截图 和 Shutter 来编辑现有的截图。 但不幸的是,Flameshot 不能在 4K 屏幕上工作。因…
在小程序中集成 redux/immutable/thunk 第三方库
一、前言 小程序给我们暴露了两个参数 require 和 module , require 用来在模块中加载其他模块, module 用来将模块中的方法暴露出去 module.exports…
Mocha + Chai + Istanbul 单元测试
一、简介 Istanbul 是 JavaScript 程序的代码覆盖率工具 Mocha 是一种测试框架,也就是运行测试的工具。用 descibe 和 it 方法,来定义 test suit ,…