Graph
知识体系汇总前端前端知识体系图
JavaScriptJavaScript知识体系图
TypeScriptTypeScript知识体系图
Node.jsNode.js知识体系图
ReactReact知识体系图
VueVue知识体系图
FlutterFlutter知识体系图
HybridHybrid知识体系图
Algorithm - DFS & BFS (JavaScript)
DFS & BFS - JavaScript通常遍历树结构:深度优先遍历(DFS)和广度优先遍历(BFS)。
树结构数据如下:
12345678910111213141516171819202122232425262728293031const tree = { value: '1', children: [ { value: '2', children: [ { value: '4', children: [] }, { value: '5', children: [] } ] }, { value: '3', children: [ { value: ...
Algorithm - Sorting (JavaScript)
排序算法 - JavaScript1. 选择排序核心思想:在未排序的序列中找到最小(大)的元素,存放到排序序列的起始位置,然后再从剩余未排序的元素中继续寻找最小(大)的元素,然后放到已排序序列的末尾,以此类推,直到所有元素排序完成。
123456789101112131415function selectionSort(arr) { if (!arr || arr.length < 2) return arr let min = 0 const N = arr.length - 1 for (let i = 0; i < N; i++) { min = i for (let j = i + 1; j <= N; j++) { min = arr[j] < arr[min] ? j : min } const [arr[i], arr[minIndex]] = [arr[minIndex], arr[i] } return arr}
2. 冒泡排序核心思想: ...
Error Code Collection
Error Code Collection错误代码集锦,反面教材,需引以为戒!
cannot be used as a JSX component代码问题描述:在父组件中引用了一个子组件,并作父子组件之间的一个交互,之前是没有问题的,但在写了比较多的逻辑之后,出现了这个错误,错误信息如下:
12345'ChildComp' cannot be used as a JSX component. Its return type 'Element | undefined' is not a valid JSX element. Type 'undefined' is not assignable to type 'Element | null'.ts(2786)(alias) const ChildComp: (props: IProps) => JSX.Element | undefinedimport ChildComp
说的是我的子组件的返回值类型不对,因为作为React的子组件,返回值类型 ...
Git
Gitgit下载https://git-scm.com/downloads
git别名alias配置Windows上配置
1234567891011121314# 用户目录下[alias] a = add ckt = checkout cktb = checkout -b cm = commit -m ca = commit -a ss = status pl = pull ps = push l = log br = branch reb = rebase mg = merge
Mac上的配置
123456789101112131415alias gs="git status"alias gcc="git checkout"alias gccb="git checkout -b"alias gl="git log"alias glo="git log --online --graph"alias gb=" ...
项目纪实杂症之process is not defined
项目纪实杂症之process is not defined背景介绍项目使用的Vite构建React前端项目,符号现代化web开发规范,部署到云端通过新建流水线后实现自动部署。通常情况是本地修改之后之后上传release分支,运行流水线,部署完成(uat)。终于有一天,按照常规操作之后,再次访问项目,意外出现白屏无法问题。开始排查…
排查流程从最直观的错误出发
登录成功之后进入首页,页面空白,打开开发控制台,控制台明显报错,见下图err01.pngerr02.png
从错误信息可以直观判断出,源码中使用了process,但是没定义,process是node环境下的定义的,如果说在浏览器端直接使用的话,是会出这样的问题,于是找到本地代码,查找process的使用地方,排除了node_modules第三库之外,只有一处使用了process.cwd(),和错误处相距甚远,显然不是这个这里导致的。
项目代码没问题,那究竟是哪里出来问题?同样的代码,之前构建跑的流水线能够使用,今天却突然不行了,极大的可能是流水线哪里出了问题,于是…
排查前后流水线的差别经过前后对比前后2条流水线的对比之后 ...
Linux
LinuxLinux Commends123456789101112131415161718192021222324252627ls -- 展开目录 ls -a -- 包括隐藏文件ls /usr -- 针对根目录查看当前usr下文件目录ll -- 展开目录并显示文件等的信息cd / -- 回到根目录cd 或 cd ~ -- 用户目录 /root => 系统管理员 超级权限者的用户主目录clear -- 清屏ctrl+l -- 同上mkdir folder => 创建文件夹 单个mkdir -p sh/folder 多层目录touch file.js => 创建文件rm -f -- 删除文件rm -rf -- 遍历强制删除任何文件 *包括空文件夹pwd -- 显示当前目录vim file.js -- 编辑文件 (没有会自创建)vi file.js -- 基本同上cat file.js -- 查看文件内容mv -- 将文件或目录改名或将文件由一个目录移入另一个目录中cp -- 用于复制文件或目录的指令
Vim操作相关12345678:w - 保存文件,不退出v ...
Promise原理实现
Promise原理手写实现已实现方法
p.then()
p.catch()
Promise.all()
Promise.race()
代码演示Talk is cheap, show me the code!
new Promise()123456789101112131415161718192021222324252627282930313233function MyPromise(executor) { this.status = 'pending' this.resolvedValue = null this.rejectedValue = null this.onFullFilledList = [] this.onRejectedList = [] const _this = this function resolve(value) { if (_this.status === 'pending') { _this.status = 'fulfilled' ...
Typescript常用内置工具类型(ts-built-in-utils)
Typescript常用内置工具类型Record定义对象的key与value类型
源码
1Record<key type, value type>
Partial生成新类型,该类型与T拥有相同的属性,所有属性变为可选
源码
123type Partial<T> = { [P in keyof T]?: T[P]}
Required生成一个新类型,该类型与T拥有相同的属性,但所有属性皆为必选项
源码
123type Required<T> = { [p in keyof T]-?: T[P]}
Readonly生成一个新类型,T中所有属性变为只读,不能修改
源码
123type Readonly<T> = { readonly [P in keyof T]: T[P];}
Pick生成一个新类型,返回T包含了K的属性集
源码
123type Pick<T, K extends keyof T> = { [P in K]: T[P ...
Typescript Tsconfig
Typescript中tsconfig.json配置速查tsconfig.json属性配置,定义typescript将以什么样的方式去编译代码,熟悉常用配置选项,对日常开发将会有一定帮助,即使忘记速查即可。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162{ // 包含: /** 任何目录 /* 任何文件 默认值:/**/* "include": ["./**/*"], // 排除: 默认排除node_modules browser_components jspm_packages 一般情况下不需要配置 "exclude": [], "compilerOptions": { // 用来指定ts被编译后的es版本 默认es3 ESNext指代最新的es版本 "target&quo ...