EWL Blog

终于,见到你了呢

2023-10-20-type-challenges-easy

subtitle

easy01-MyPick 题目 Implement the built-in Pick<T, K> generic without using it. Constructs a type by picking the set of properties K from T For example: interface Todo { title: string de...

2023-10-8-关于十一假期的一些记录

纯纯流水账,但是得记一下

2023年9月28日,是目前为止的人生里除了高考以及工作之外的另一个大日子,没错,我结婚了。

2023-08-22-关于Electron中使用node插件的一些问题

electron好难用啊~

应该是很久之前就被ABI不一致的问题卡过脖子,导致Electron项目跑不起来,非常头大,最近 又遇到这个问题,但是好在有点时间可以集中解决一下,遂记录一下过程。 最开始出现的现象呢,就是下面这个很经典的NODE_MODULE_VERSION不一致的报错。 Error: The module '/path/to/native/module.node' was compiled again...

2023-08-17-Scheduler source code

带有注释的React Scheduler源码

/** * @license React * scheduler.development.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the...

2023-08-14-React Scheduler中使用小顶堆相关算法的代码解析

React Scheduler 小顶堆算法使用

React源码 在scheduler.development.js中,可以找到几个看起来和调度并不直接相关的方法函数, 分别是push/pook/pop/siftUp/siftDown/compare。 源码如下: function push(heap, node) { var index = heap.length; heap.push(node); siftUp(heap...

2023-08-11-关于React Scheduler中的小顶堆算法

React调度器中使用到的算法

概念描述 在digitalOcean中是这样描述小顶堆的,A Min Heap Binary Tree is a Binary Tree where the root node has the minimum key in the tree. 这也就是说,首先小顶堆是一个二叉树,而且这棵二叉树的根节点拥有最小的key,通常是使用 数组来表示小顶堆的,格式如下(其中所有的索引运算必...

2023-08-10-关于位运算

位运算

几个(不太 in js场景)常用的位运算 在JS中,位运算一般会转为Int32(32位有符号整型)。在日常的开发中很少用到位运算,但是 最近在尝试阅读React源码的时候发现其中关于scheduler调度优先级的运算中,用到了大量的 位运算,遂写一篇博文记录一下。 按位与 概念:将2个二进制操作数进行逐位与操作,如果每位都是1则返回1,否则返回0 示例: // 3 对应的 Int32 ...

2023-03-01-Pnpm入门系列01

Pnpm

什么是Pnpm? 借用Pnpm官网的一句话,pnpm - 速度快、节省磁盘空间的软件包管理工具。 一目了然,Pnpm的出现就是为了解决两个问题:速度 以及 空间占用。 尝试yarn的PnP模式失败而且可能会需要使用到v2版本的yarn,不再继续歪楼,先跳过,附一个PnP模式原理的链接 Pnpm官网的一个Benchmark结果对比,以及这是官方维护的一个benchmark仓库 依赖管理...

2019-12-10-本周学习周报

学习周报

2019-12-10-本周学习周报 学习总览 JavaScript this 闭包 apply/call/bind CSS grid布局之网格容器相关属性 HTTP http协议初探 学习内容 this 闭包 apply/call/bind grid布局 理解网格布局 网格,就是一系列相交的水平线与垂直线,组成了网格的列与行。当我们想定义某...

关于提升的二次思考

函数提升与变量提升

提升 所谓提升就是在执行代码,创建并进入上下文时在变量对象中收集添加当前作用域中所有的变量声明以及函数声明,在这样的过程中,函数声明的优先级会比变量声明的优先级更高,这究竟是什么意思呢?这里我用伪代码解释一下: console.log(foo); // foo函数体 function foo() { console.log('foo'); } var foo = 1; 当...