分类: 原理
手撕promise底层实现
直接上代码:
雏形
3个状态,只可在pending才可修改,
class myPromise {
constructor(executor) {//executor为传入的函数(resolve,reject)=>{}
……
axios实现原理
axios的封装可以去看上一篇文章
XMLHttpRequest
open()方法
open()方法接收三个参数:
第一个参数 method:要发送的请求的类型。比如GET、PO……
axios的二次封装
为什么封装
随着项目规模增大,如果每发起一次HTTP请求,就要把这些比如设置超时时间、设置请求头、根据项目环境判断使用哪个请求地址、错误处理等等操作……
pnpm如何解决npm/yarn的痛点
软链接和硬链接
假设我们有一个文件,称为 hello
通过 ln -s 创建一个软链接,通过 ln 可以创建一个硬链接。
$ ln -s hel……
Vue-route底层实现原理
先抛出一堆问题:
如何改变 URL 却不引起页面刷新?如何检测 URL 变化了?inistall方法做了什么?如何$router与$route绑定到所有组件上?如何确保插件只安……
AST抽象语法树
解析器 Parser
这个步骤分为2个阶段,词法分析和语法分析
词法分析:
词法分析阶段把字符串形式的代码转换为 令牌(tokens)流。
分词:将整个代……
牛客网acm模式js的输入输出
首先是js的输入输出格式,注意acm模式
https://blog.csdn.net/qq_43057018/article/details/124673653
输入一个矩阵 ,注意readline()读入的输入为字……
手撕intanceof
关于原型链可以去看https://chun53.top/266.html
直接上代码
const instanceof_ = (obj, newFn) => {
//递归的方式
if (typeof obj !== 'object' |……
手撕object.assign
浅拷贝Object.assign()
用于将对象自身所有的可枚举属性从一个或者多个源对象上复制到目标对象
Object.myAssign = function (target, ...src) {
for ……
TS | UnwrapRef 的底层解包原理
Vue3 中,ref 是一个新出现的 api,ref 这个函数,它会为简单类型的值生成一个形为 { value: T } 的包装。
ref 函数所返回的类型 Ref,就是本文要讲解的重……