精选分类

文章列表

5611 分钟

好记性不如烂笔头 本篇文章主要是负责记录遇到的不错的学习网站还有书籍。 网站篇MDN:https://developer.mozilla.org/zh-CN/ 现代JavaScript教程(我的入门书籍):https://zh.javascript.info/ bestofdjs:https://bestofjs.org/ 好兄弟的博客:https://yieldray.fun/ 被删的前端游乐场:https://godbasin.github.
1.6k1 分钟

TCP拥塞控制所谓拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制和流量控制都是太那个个控制发送方发送数据的速率来达到效果的。 区别在于:拥塞控制是让网络能够承受现有的网络负荷,它是一个全局性的过程,设计所有主机,路由器以及网络传输性能有关的所有因素。而流量控制往往是指点对点的通信量的控制,即接收端控制发送端,即抑制发送端发送数据的速率,以便使接收端来得及接收。 因此,发送方在确定发送报文段的速率时,既要根据接收方的接收能力,又要从全局考虑不要使网络发送拥塞,因此,TCP协议要求发送方维护两个窗口: 接收窗口rwnd,接收方根据目前接收缓存大小所设定的窗
1.5k1 分钟

仓库操作 git init: 初始化一个新的 Git 仓库。在当前目录下创建一个 .git 文件夹。 git clone <repository-url>: 克隆一个远程仓库到本地。 状态查看 git status: 查看当前仓库的状态,包括工作目录和暂存区的更改。 git diff: 显示工作目录与暂存区的区别。可以加上文件名查看特定文件的差异。 git log: 查看提交日志。可以加上 --oneline 参数简化输出。 提交操作 git add <file>: 将文件添加到暂存区。可以用 git add . 来添加当前目录下的所有文件。 git commit
4.6k4 分钟

正则表达式是提供了一种在文本中进行搜索和替换的强大的方式的模式。 本文主要介绍JavaScript中的正则表达式。 创建一个正则表达式正则表达式(可叫作 “regexp”,或 “reg”)由 模式 和可选的 修饰符 组成。 有两种创建正则表达式对象的语法。 1.调用RegExp对象的构造函数: regexp = new RegExp("pattern", "flags"); 2.使用一个正则表达式字面量,其由包含在斜杠之间的模式组成: regexp = /pattern/; // 没有修饰符
2.4k2 分钟

Vite 的特点 开发服务器启动速度: Vite 的设计核心是提高开发环境的启动速度。它基于 原生 ES 模块,在启动时不需要像 Webpack 那样预打包整个项目,只在浏览器请求某个模块时进行按需编译。这使得即使在大型项目中,Vite 的启动速度依然非常快。 热更新(HMR): Vite 利用 ES 模块 的特性,使其热模块替换(HMR)系统极其高效。它只重新编译并更新变化的模块,HMR 响应时间非常短,提供了更顺畅的开发体验,尤其是对大项目的改动也可以快速生效。 打包机制: 在生产环境中,Vite 使用 Rollup 进行打包。Rollup 是一个专注于处理 ES 模块的打包工具,
6.9k6 分钟

算法1.冒泡排序思想 冒泡排序的基本思想是通过多次比较相邻的元素,将较大的元素逐步“冒泡”到数组的末端。 每一轮遍历后,未排序部分的最大元素会被移动到正确的位置。随着排序的进行,待排序的部分会逐渐减少,因为已经排序好的元素会积累在数组的末端。 步骤如下: 比较相邻元素:从数组的起始位置开始,比较相邻的两个元素。 交换顺序:如果前一个元素比后一个元素大,则交换它们的位置。 重复过程:对每一对相邻元素重复上述步骤,直到整个数组排序完成。 时间空间复杂度 时间复杂度:平均O(n^2) 空间复杂度:O(1) 代码实现 function bubbleSort(arr) { let
80k1:13

前端面经温故而知新,可以为师矣。——《论语·为政》 js部分1.var、let、const之间的区别作用域 var 声明的变量的作用域是函数作用域或全局作用域的。如果在全局环境中声明,它将成为全局变量;如果在函数内部声明,它将成为该函数的局部变量。 let 声明的变量的作用域是块级作用域。 let 声明的变量只在它声明的块(比如 {} 大括号内部)中可见。 const 声明常量,也具有块级作用域,类似于 let。 var 允许在同一作用域内重复声明同一个变量,而 let 不允许。 var 声明的变量存在变量提升,可以在声明之前使用。let和const没有传统意义上的变量
10k9 分钟

逻辑运算符小记&& 与运算 && 做了如下的事: 从左到右依次计算操作数。 在处理每一个操作数时,都将其转化为布尔值。如果结果是 false,就停止计算,并返回这个操作数的初始值。 如果所有的操作数都被计算过(例如都是真值),则返回最后一个操作数。 换句话说,与运算返回第一个假值,如果没有假值就返回最后一个值。 || 或运算|| 做了如下的事情: 从左到右依次计算操作数。 处理每一个操作数时,都将其转化为布尔值。如果结果是 true,就停止计算,返回这个操作数的初始值。 如果所有的操作数都被计算过(也就是,转换结果都是 false),则返回最后一个操作数。