Typescript逆变与协变
刚接触Typescript那会儿有总结过不同类型之间相互赋值的情况:https://www.ccc5.cc/2702.html ,直到最近自己翻官方文档才知道有个更通俗的概念:逆变与协变。中文教程参考...
Typescript中如何切掉函数参数表的最后一个参数
实现了个Prepend,将指定类型添加到元组类型的最前面: type Prepend<Tuple extends any[], Addend> = ((_0: Addend, …_1:...
Y组合子推导(ES6版)
网上以“Y组合子”为关键字搜,结果其实挺多的,这里只是以我个人的理解再推一遍。 在日常开发中,Y组合子除了可以实现匿名递归以外好像也没有其他用,不过推导的过程倒是挺有意思,这里记录下。 另外,对相关问...
AC68U上配置Clash透明Proxy记录
家里路由器是华硕AC68U,已经刷了Merlin,但是里面集成的koolshare软件市场的科学Proxy工具实在难用,测速慢、无法自动切换、手动切换一次需要不下30s。Clash的Auto-UrlT...
获取对象key集合的一些姿势
有原始对象: const obj = { a: 1, [Symbol(‘b’)]: 2 } 再加工一下: Object.defineProperty(obj,’c’,{ value: 3, enume...
一个题考察对Promise的掌握情况
近半年面试了很多的人,其中不乏高级前端开发,而对Promise这个现代前端异步基础掌握得实在是惨不忍睹,除了烂大街的考察事件循环中Promise执行顺序的问题,以下这个题也是一个很好的考察点,问,以下...
TypeScript类型兼容
先看代码: let x = { a: 1 }; let y = { a: 1, b: 2 }; x = y; // OK y = x; // Error let xx = (a: number) =&...
记一次anti anti debug
去年在微博上看到某前端大佬提供的一种检测用户是否打开控制台的方式,后面自己也去探索了一种方式,同时也发现在StackOverflow上有关于这个话题的讨论。不过这些方式后面都失效了。 今天偶然打开了一...
一种探测你近期是否访问过指定网站的方式
html的a标签有一个特性,当用户访问过其href指向的链接后,在任意其他网站出现一个a标签,链接也是一样的话,显示的标签内的内容颜色会跟默认的颜色不一样。当然,开发者也可以通过css的伪类选择器指定...
斐波拉契数列计算之从递归到记忆到动态规划的演进
递归版本: function fib(n) { if (n <= 1) return 1; return fib(n – 1) + fib(n – 2); } 这样做的问题在哪呢? 简单粗暴的实...
Koa洋葱模型的另种实现
洋葱模型如下图: 对middleware1而言,其next就是一个函数,返回middleware2的执行结果(一个promise对象),同理middleware2的next就是一个函数,其返回midd...
某数二进制中包含1的个数计算
这是一个来自社区的题目,表述如下: 实现一个函数countOne,计算给定的参数数值(自然数)的二进制包含“1”的个数,如: countOne(10) => 2 countOne(16) => 1 c...
基于webpack构建项目的SourceMap(伪)最佳实践
SourceMap是什么 像C++、OC等语言的编译器,在编译的时候会生成符号文件,对外无需发布这些符号文件,而当有异常上报或本地Debug二进制文件时,可以帮助开发人员将二进制尽可能还原成源码级别(...